2014-09-03 75 views
4

我必须配置JDBC appender以使用数据源..有可能吗?Log4j:配置JDBC appender使用数据源

如果是这样,怎么样? 我现在的文件看起来像这样:

# Define the root logger with file appender 
log4j.rootLogger = DEBUG, sql 

# Define the file appender 
log4j.appender.sql=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.sql.URL=jdbc:mysql://localhost/test 
# Set Database Driver 
log4j.appender.sql.driver=com.mysql.jdbc.Driver 
# Set database user name and password 
log4j.appender.sql.user=root 
log4j.appender.sql.password=password 
# Set the SQL statement to be executed. 
log4j.appender.sql.sql=INSERT INTO LOGS VALUES ('%x', now() ,'%C','%p','%m') 
# Define the xml layout for file appender 
log4j.appender.sql.layout=org.apache.log4j.PatternLayout 
+0

您是不是要查找JNDI树中的数据源? – 2014-09-03 18:18:57

+0

是的!我想在jndi树中找到它 – TimeToCodeTheRoad 2014-09-04 05:22:38

回答

1

如果你想使用一个数据源,你需要添加的Apache Extras for Apache log4j jar文件和使用类org.apache.log4j.DBAppender。例如: -

# Define the root logger with file appender 
log4j.rootLogger = DEBUG, sql 

# Define the database appender 
log4j.appender.sql=org.apache.log4j.DBAppender 
log4j.appender.sql.connectionSource=org.apache.log4j.receivers.db.JNDIConnectionSource 
log4j.appender.sql.connectionSource.jndiLocation=java:/comp/env/jdbc/MySQLDS 

  1. 您也可以下载文件apache-log4j-extras-1.2.17.jarhere
  2. 此appender使用数据库模式(不可定制),你可以找到它here。如果你想使用其他表,你需要重写appender。
+0

嗨保罗,我的数据源是bean id =“datasource”的bean。如何更改上述属性文件以读取 – TimeToCodeTheRoad 2014-09-04 16:22:23

+1

@TimeToCodeTheRoad请参阅http://stackoverflow.com/a/11399305/870248以将您的数据源绑定到JDNI树。 – 2014-09-04 16:35:38

+0

@TimeToCodeTheRoad或者你可能想看到[以编程方式配置log4j](http://robertmaldon.blogspot.de/2007/09/programmatically-configuring-log4j-and.html) – 2014-09-04 16:41:07