我有一个简单的问题。
如何从代码动态提供日志文件名?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="${logfilename}.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
此处文件名为 logs / app.log 。
编辑在参数fileName
中,我已放置${logfilename}.log
并设置系统属性如下:
System.setProperty("logfilename", "a_cool_logname");
现在它正在创建名为${logfilename}.log
的文件,这绝对不是必需的。
由于
答案 0 :(得分:0)
**属性文件看起来像这样**
log4j.rootLogger=DEBUG, FA
#Console Appender WE WRE NOT USING IT
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{dd MM yy HH:mm} %-5p %m%n
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=${fName}
#log4j.appender.FA.MaxFileSize=5MB
#log4j.appender.FA.MaxBackupIndex=3
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d{dd MM yy HH:mm} %8p %10m%n
# Set the logger level of File Appender to WARN
log4j.appender.FA.Threshold = INFO
log4j.appender.FA.Threshold = DEBUG
**并在JAVA中设置属性**
System.setProperty("fName", "d:\\siemens\\" + getDateTime() + c.getSimpleName() +".log");
PropertyConfigurator.configure("log4j.properties");
如果您需要进一步查询,请告知我们