當前位置:首頁 » 數據倉庫 » log4net無法寫入資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

log4net無法寫入資料庫

發布時間: 2022-08-23 17:06:33

❶ log4net 將log實時顯示在textbox中(WinForm),就不能記錄到文件或者資料庫中了嘛求解決辦法。。謝謝

log4net可以支持控制台輸出、文本文件保存、資料庫保存幾種日誌記錄手段,一般通過配置文件來設置,具體用法你網路log4net可以找到大把的資料,和你是否顯示在textbox無關。

❷ 使用了log4net,發布系統後,發現無法寫日誌了,怎麼辦

在項目中配置第一步:首先在項目中引用log4net.dll文件。第二步:在Web.config文件中進行添加configSections的節點第三步:添加log4net配置節點然後在log4net節點下添加寫入本地文本文件中的配置注釋很清楚,就不解釋了。寫入指定郵箱的配置通過的是163郵箱伺服器發送將日誌寫入資料庫的相關配置,還要建立一張對應的資料庫表另外一種寫入文件的方式配置在log4net節點中還有兩個節點在框架的體系裡,所有的日誌對象都是根日誌(rootlogger)的後代。因此如果一個日誌對象沒有在配置文件里顯式定義,則框架使用根日誌中定義的屬性。在標簽里,可以定義level級別值和Appender的列表。如果沒有定義LEVEL的值,則預設為DEBUG。可以通過標簽定義日誌對象使用的Appender對象。聲明了在其他地方定義的Appender對象的一個引用。在一個logger對象中的設置會覆蓋根日誌的設置。而對Appender屬性來說,子日誌對象則會繼承父日誌對象的Appender列表。這種預設的行為方式也可以通過顯式地設定標簽的additivity屬性為false而改變。那麼上面就會有資料庫日誌的寫入和郵箱的寫入在Global.asax文件初始化配置調用運行一下Log4net中DEBUG、INFO、WARN、ERROR區分得很好。正常的DEBUG、INFO的日誌,就讓它記錄在日誌文件裡面吧。對於WARN、ERROR級別的日誌,記錄到日誌文件的同時,順便發送電子郵件到我的信箱裡面。這樣一來,我也不必每天去看日誌文件,二來,出了什麼問題,能及時通過電子郵件得到通知。資料庫結構

❸ winform log4net 無法寫入

需要在Program里加上一下代碼,初始化用的
log4net.Config.XmlConfigurator.ConfigureAndWatch(
new System.IO.FileInfo("log4net.config"));

❹ 用log4net 發送日誌到數據,怎麼沒反應,記錄日誌文件可以。

提醒一下:

1. Properties/AssemblyInfo.cs 里加上2句代碼:

a. using log4net.Config;

b. [assembly: XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

2. 把 Log4Net.config 文件 放在與web.config 一個目錄。就是根目錄咯。

3. 建資料庫及LOG表。欄位見 Log4Net.config 里的 AdoNetAppender 。

4. 修改 Log4Net.config 里的連接字元串connectionString 及 commandText 看是否插入的表名與建的表是否一致。

❺ 怎麼樣使用log4net成功將日誌寫入oracle資料庫

一、前提條件

系統必須是使用LOG4J進行日誌管理,否則方法無效。

系統必須包含commons-logging-xxx.jar,log4j-xxx.jar這兩個JAR包,XXX為版本號。

二、操作步驟

1、創建日誌表

要把日誌持久化,必須在資料庫中創建一張用來存儲日誌信息的表,表內欄位為日誌

的一個主要屬性包括:操作類,執行方法,列印時間,日誌級別,日誌內容。

CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL,

CLASS VARCHAR2(200),

METHOD VARCHAR2(100),

CREATETIME DATE,

LOGLEVEL VARCHAR2(50),

MSG VARCHAR2(4000))

因為存儲的類為類的全部路徑,所以CLASS欄位長度需要比較大。

2、日誌管理配置

LOG4J主要有兩種配置文件.properties和.xml,這里以properties文件為基礎來講

述,關於XML文件的配置,相信大家看完下面的介紹也一樣能輕松完成。

通常在LOG4J.PROPERTIES文件的第一行是:

log4j.rootLogger= XXX,這句是控制日誌的輸出,如果想吧日誌輸出到資料庫,

則需要在XXX中添加「DB」,如log4j.rootLogger=INFO,stdout,Platform,db。上面

這句就是把日誌中級別為INFO的信息輸出到STDOUT,PLATFORM和DB

(DATABASE)中。

配置好如上的信息,LOG4J就知道用戶是想把信息存入資料庫,接下來我們就要來

配置資料庫的相關信息(包括緩存,資料庫連接信息,和執行sql),配置信息如下:

###JDBCAppender
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender

//這個配置是選擇使用JDBCAppender方法,將日誌信息存儲到資料庫。當然,如果你還要做其他操作,可以自己寫個類,繼承JDBCAppender就OK了。
log4j.appender.db.BufferSize=1

//這個配置是告訴LOG4J,有多少條日誌信息後才存入資料庫,我這里是1,就是說有一條就查一條,顯然這樣在生產環境下是很影響系統性能的。
log4j.appender.db.driver=oracle.jdbc.driver.OracleDriver

//這個配置是告訴LOG4J,做資料庫存儲所用的驅動。
log4j.appender.db.URL=jdbc:oracle:thin:@<ip>:<port>:<sid>

//這個配置資料庫連接的URL,不用說也都知道。
log4j.appender.db.user=XXX
log4j.appender.db.password=XXX

//上面兩個是資料庫連接時的用戶名和密碼
log4j.appender.db.sql=insert into RESLOG

(LogId,Class,Method,createTime,LogLevel,MSG)

values (SQ_RESLOG_LOGID.Nextval,'%C','%M',

to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd

HH24:mi:ss'),'%p','%m')

//這個配置是告訴當LOG4J吧日誌存儲資料庫時用的SQL語句。SQ_RESLOG_LOGID.Nextval是我建的一個SEQUENCE;『%C』是日誌中的CLASS;『%M』是列印日誌是執行到類里的方法;『%d』是列印的時間,它支持格式化;『%P』是日誌級別,包括INFO、DEBUG、ERROR等;『%m』是MSG,日誌內容。注意這里的參數區分大小寫。
log4j.appender.db.layout=org.apache.log4j.PatternLayout

通過上面的配置,現在再啟動服務,LOG4J就會自動把原來存儲在.LOG文件中的信息,同時存儲到資料庫了。

❻ log4net 自定義變數怎麼插不到資料庫中

public class Springusercontroller extends AbstractCommandController{
private String page;
private String error;
private IuserinfoService service;

❼ log4net在sql server中成功,但不能寫入access

我也遇到這個問題,在控制台程序中可以,但WINFORM里不可以。

去除 [STAThread] 就可以了,呵呵。搞 了一下午才搞明白。

❽ 我配置完log4net操作資料庫的,為什麼不往資料庫里寫入信息

殺毒

❾ log4net按照不同類型輸出到文件或資料庫么

這個應該配置兩個logger就可以了 不是兩個appender,然後你的兩個方法分別使用不同的log,這樣是不是就滿足你的要求了