java - log4j 记录到 postgresql 不工作

标签 java postgresql log4j

这是数据库模式

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) 的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 log4j:警告见http://logging.apache.org/log4j/1.2/faq.html#noconfig了解更多信息。

下面是写入文件时我的 log4j 属性文件的工作版本

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

最佳答案

您应该将 rootCategory 设置为:

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'))

否则记录器将没有附加程序。

关于java - log4j 记录到 postgresql 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14050294/

相关文章:

java - 秒转换器.java :19: error: incompatible types: String cannot be converted to int

postgresql - 获取带有字符串变量的列

java - 每当由 DOMConfigurator.configureAndWatch 方法创建的线程重新加载 log4j.xml 时都需要回调

Java 游戏随机 id 数组

java - TCP 客户端套接字填满堆

postgresql - Postgres : index on cosine similarity of float arrays for one-to-many search

Java log4j 返回一些警告

java - 为 Log4j Appender 运行 Kafka-0.8.1 时出错

java - Map里面的LinkedList怎么变化呢?

sql - Django 查询 Postgres 返回错误列