2014-09-03 143 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