Java RollingFileAppender 如何与 log4j2 一起工作?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20975292/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 05:40:25  来源:igfitidea点击:

How does RollingFileAppender work with log4j2?

javalogginglog4j2

提问by membersound

I'm use to RollingFileAppenderon normal log4j. Now I'm switching to log4j2, and cannot get the appender to work.

RollingFileAppender习惯在普通的 log4j 上。现在我要切换到log4j2,并且无法让 appender 工作。

The Fileappender below works as expected. But the logging file for RollingFileis never created. Why?

File下面的附加程序按预期工作。但是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>

采纳答案by Joe

The RollingFiletag is missing a filePatternattribute.

RollingFile标记缺少filePattern属性。

<RollingFile name="ROLLING" 
             fileName="c:/logsroll.log"
             filePattern="c:/logsroll-%i.log">

回答by Alireza Fattahi

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:

我使用的是 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>