2015-09-07 104 views
1

我想配置log4j數據庫日誌記錄到maven web項目,但不能讓它工作。如果有人能指出我做錯了什麼,我將不勝感激。無法獲得Log4j數據庫日誌記錄工作

我創建了一個maven web項目,並將其部署在jboss wildfly中。

我已經添加了這兩個依賴關係。

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.36</version> 
    </dependency> 

而且我在資源下添加了log4j.properties文件。

log4j.rootLogger = DEBUG, DB 

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 

log4j.appender.DB.URL=jdbc:mysql://localhost:3306/pos_test 

log4j.appender.DB.driver=com.mysql.jdbc.Driver 

log4j.appender.DB.user=root 
log4j.appender.DB.password=password 

log4j.appender.DB.sql=INSERT INTO myLogs VALUES('%X{User}','%d{yyyy-MM-dd HH:mm:ss}','%C','%p','%m') 

log4j.appender.DB.layout=org.apache.log4j.PatternLayout 

在我的代碼我嘗試登錄如下,

logger.info("Testing info"); 
logger.debug("Testing Debug"); 

我用下面的SQL來創建數據庫表。

CREATE TABLE myLogs (    
    USER_ID varchar(20) NOT NULL,  
    LOG_DATE date NOT NULL,   
    LOGGER varchar(50) NOT NULL,  
    LEVEL varchar(10) NOT NULL,  
    MESSAGE varchar(1000) NOT NULL 
); 

日誌中沒有錯誤,並且日誌信息也沒有打印在服務器日誌中。

仍然將日誌記錄信息添加到數據庫中。

我在這裏失蹤了什麼?

問候,

回答

0

要我概念你正在做的一切權利。

我不知道很多關於wildfly,但我會嘗試以下幾點:

  1. 確保您的整個日誌配置正確部署。 有這樣做的不同的方法:

    • 與您喜愛的工具(WinRar或東西)打開您的WAR/EAR,看日誌屬性是否文件確實存在在正確的位置(WEB-INF \班WAR的情況)。

    • 這同樣適用於log4j的依賴 - 它應該被正確地擠進 'LIB' 文件夾

  2. 嘗試任何不同的appender,說控制檯添加器或文件附加目的地。只是爲了確保它的工作。也許甚至同時使用兩個appender(log4j允許)

  3. 也許你有一些錯誤,但他們不被記錄系統攔截,因爲你使用的唯一的appender是一個數據庫appender,並出現了一些問題。

  4. 您是否特別緻電日誌記錄系統確實會導致db appender被調用?最好的辦法,以確保將要調試的log4j的 - 這並不難,相信我,這個人是很容易理解的:)

希望這有助於

馬克

+0

嗨,馬克謝謝爲答覆。配置文件和jar在正確的位置。我曾經嘗試過有多個appender,但它沒有工作。我嘗試了控制檯和數據庫appender但控制檯沒有打印輸出。 –

+0

我試圖只有一個控制檯appender具有log4j.properties文件。它仍然不起作用。 –

+0

我認爲這意味着你的配置不會被處理。最好的方法是從這裏進行調試。只需進入日誌記錄調用,看看哪些appender實際使用。嘗試顯式地使用根記錄器進行調試......也許你正在使用spring或其他東西?如果它只有一個webapp和log4j,請閱讀這篇文章,它可能會有所幫助:http://www.codejava.net/coding/how-to-initialize-log4j-for-java-web-application –