web-dev-qa-db-fra.com

Comment RollingFileAppender fonctionne-t-il avec log4j2?

Je suis habitué à RollingFileAppender sur log4j normal. Maintenant je passe à log4j2 et ne parvient pas à faire fonctionner l'appender.

L'appendeur File ci-dessous fonctionne comme prévu. Mais le fichier journal de RollingFile n'est jamais créé. Pourquoi?

<?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>
12
membersound

Il manque un attribut RollingFile dans la balise filePattern.

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

J'ai utilisé log4j2 version 2.0, dans certains cas, cela génère une erreur si vous ne définissez aucune date dans le modèle de fichier, dans ce cas, vous pouvez utiliser quelque chose comme ci-dessous:

      <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>
8
Alireza Fattahi