以下是我的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
答案 0 :(得分:0)
您可以在JVM命令行上使用属性占位符和-D:
e.g。
log4j.appender.DB.URL=${myDbUrl}
然后在您的JVM命令行中,您将包含以下内容:
-DmyDbUrl=blahblahblah
或者你可以使用System.setProperty,但是你必须在log4j初始化之前这样做。