2012-12-27 37 views
0

這是數據庫架構log4j的日誌記錄到PostgreSQL不工作

create table log4j_messages 
( 
    message varchar(2000), 
    class varchar(255), 
    priority varchar(64), 
    log_date timestamp 
); 

以下是我的log4j屬性

log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.jdbc.driver=org.postgresql.Driver 
log4j.appender.jdbc.URL=jdbc:postgresql://MYSERVER:5432/logs 
log4j.appender.jdbc.user=logs 
log4j.appender.jdbc.password=MYPASS 
log4j.appender.jdbc.sql=INSERT INTO log4j_messages (message, class, priority, log_date) values ('%m', '%c', '%p', to_timestamp('%d', 'YYYY-MM-DD HH24:MI:SS,MS')) 

沒有數據記錄到數據庫中。無論如何,我可以找出問題所在?

編輯:

我試圖在屬性上添加log4j.rootCategory = DEBUG文件,而現在我得到以下警告。

log4j:WARN記錄器(myprogram.Main)找不到appender。 log4j:WARN請正確初始化log4j系統。 log4j:警告有關更多信息,請參見http://logging.apache.org/log4j/1.2/faq.html#noconfig

下面

是寫入文件

log4j.rootCategory=DEBUG, R, O 

# Stdout 
log4j.appender.O=org.apache.log4j.ConsoleAppender 

# File 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=log4j.log 

# Control the maximum log file size 
log4j.appender.R.MaxFileSize=500KB 

# Archive log files (one backup file here) 
log4j.appender.R.MaxBackupIndex=1 

log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.O.layout=org.apache.log4j.PatternLayout 

log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 
+0

確保路徑中有jdbc jar。你正確的日誌級別(調試/錯誤?)?最後 - appender不會記錄異常。 http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/jdbc/JDBCAppender.html – Jayan

+1

Postgresql預計在秒和毫秒之間的點不是逗號。 – Eelke

+0

我改變它到一個點,仍然無法正常工作。我在Eclipse中也有jarpath,我也嘗試將它放在bin文件和項目文件中。 – Arya

回答

1

時,您應該rootCategory設置爲我的log4j屬性的工作文件版本:

log4j.rootCategory=DEBUG, jbdc 

log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.jdbc.driver=org.postgresql.Driver 
log4j.appender.jdbc.URL=jdbc:postgresql://MYSERVER:5432/logs 
log4j.appender.jdbc.user=logs 
log4j.appender.jdbc.password=MYPASS 
log4j.appender.jdbc.sql=INSERT INTO log4j_messages (message, class, priority, log_date) values ('%m', '%c', '%p', to_timestamp('%d', 'YYYY-MM-DD HH24:MI:SS,MS')) 

否則伐木者將不會有一個appender。

+0

感謝您的回答Hiery,但是當我運行我的程序時,我從log4j中得到這些錯誤和警告pastebin.com/k4UPgftk – Arya

+0

log4j屬性文件實際上是否包含在jar或classpath中? –

+0

是的,它在我寫入文件時工作正常 – Arya