谁能指导我如何配置 log4j 以登录到我在运行时指定的特定文件。日志文件的名称和路径是在运行时生成的,应用程序必须登录到该文件特定文件。
log4j.properties 文件中的文件附加程序条目通常指向应用程序将使用的日志文件。但是在这种情况下,我想从命令行读取日志文件路径并记录到该特定文件。
我怎样才能做到这一点?
最佳答案
您也可以从 log4j.properties 文件中执行此操作。使用下面的示例文件,我添加了系统属性 ${logfile.name}:
# logfile is set to be a RollingFileAppender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${logfile.name}
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{yyyyMMdd@HH\:mm\:ss,SSS}\:%c - %m%n
然后可以通过两种不同的方式设置日志文件名:
- 作为命令行,系统属性传递给 java "-Dlogfile.name={logfile}"
在 java 程序中直接设置系统属性(在调用 log4j 之前)。
System.setProperty("logfile.name","some path/logfile name string");
关于java - 配置 log4j 以在运行时记录到自定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324053/