0

以下是我用于 log4j 的 jdbc 适配器,如何在运行时更改 dblocation

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.driver=org.sqlite.JDBC
log4j.appender.DB.URL=jdbc:sqlite:{To change}
log4j.appender.DB.user=
log4j.appender.JDBC.commit=true
log4j.appender.DB.threshold=trace
log4j.appender.DB.sql=INSERT INTO sfLog(UserID,UserName,IPAddress,Port,UserAgent,Type,Status,Message,Date) VALUES('%X{UserID}','%X{UserName}','%X{IP}','%X{Port}','%X{Agent}','%X{Type}','%X{Status}','%m','%d{dd-MM-yyyy HH:mm:ss}')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
4

1 回答 1

0

您可以在 JVM 命令行上使用属性占位符和 -D:

例如

log4j.appender.DB.URL=${myDbUrl}

然后在您的 JVM 命令行上,您将包含以下内容:

-DmyDbUrl=blahblahblah

或者您可以使用 System.setProperty,但您必须在 log4j 初始化之前这样做。

于 2012-06-14T15:41:25.073 回答