问题描述
我在普通log4j上使用RollingFileAppender.现在我要切换到log4j2,无法让Appender工作.
以下File appender按预期工作.但是从未创建RollingFile的日志记录文件.为什么?
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <File name="FILE" fileName="c:/logs.log"> <PatternLayout pattern="%d %p %c: %m%n" /> </File> <RollingFile name="ROLLING" fileName="c:/logsroll.log"> <PatternLayout pattern="%d %p %c: %m%n"/> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="0.001 MB"/> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="FILE" /> <AppenderRef ref="ROLLING" /> </Root> </Loggers> </Configuration>
推荐答案
RollingFile标签缺少filePattern属性.
<RollingFile name="ROLLING" fileName="c:/logsroll.log" filePattern="c:/logsroll-%i.log">
其他推荐答案
我使用了Log4J2版本2.0,在某些情况下,如果您不设置任何文件模式中的任何日期,在这种情况下,它会引发错误,在这种情况下,您可以使用以下内容:
:<RollingFile name="MyFile" fileName="d:/log/bsi/admin/total/totalLog.log" filePattern="d:/log/totalLog-%d{MM-dd-yyyy}-%i.log"> <PatternLayout> <Pattern>%d %p %c [%t] %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="1 MB"/> </Policies> <DefaultRolloverStrategy max="2000"/> </RollingFile>
问题描述
I'm use to RollingFileAppender on normal log4j. Now I'm switching to log4j2, and cannot get the appender to work.
The File appender below works as expected. But the logging file for RollingFile is never created. Why?
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <File name="FILE" fileName="c:/logs.log"> <PatternLayout pattern="%d %p %c: %m%n" /> </File> <RollingFile name="ROLLING" fileName="c:/logsroll.log"> <PatternLayout pattern="%d %p %c: %m%n"/> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="0.001 MB"/> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="FILE" /> <AppenderRef ref="ROLLING" /> </Root> </Loggers> </Configuration>
推荐答案
The RollingFile tag is missing a filePattern attribute.
<RollingFile name="ROLLING" fileName="c:/logsroll.log" filePattern="c:/logsroll-%i.log">
其他推荐答案
I used log4j2 version 2.0, in some cases it throws error if you do not set any date in file pattern, in this case you can use some thing like below:
<RollingFile name="MyFile" fileName="d:/log/bsi/admin/total/totalLog.log" filePattern="d:/log/totalLog-%d{MM-dd-yyyy}-%i.log"> <PatternLayout> <Pattern>%d %p %c [%t] %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="1 MB"/> </Policies> <DefaultRolloverStrategy max="2000"/> </RollingFile>