问题
I have to configure the JDBC appender to use a datasource..is it possible?
if so , how? My present file looks like so:
# 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
回答1:
If you want to use a datasource, you need to add the jar file of Apache Extras for Apache log4j1 and use the class org.apache.log4j.DBAppender2. e.g.:
# 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
Notes
- You can download the file
apache-log4j-extras-1.2.17.jarhere. - This appender uses a database schema (not customizable) and you can find it here. If you want to use other tables, you'll need to rewrite the appender.
来源:https://stackoverflow.com/questions/25641875/log4j-configure-jdbc-appender-to-use-datasource