Java >> Java tutorial >  >> Tag >> Log4j

Tidsbaseret udløsningspolitik i log4j2

1 angiver her 1 dag og ikke 1 time. Jeg har manuelt testet med nedenstående konfiguration.

<RollingFile name="T" fileName="/data_test/log/abc.log"
        filePattern="/data_test/log/abc-%d{MM-dd-yyyy}-%i.log">
        <PatternLayout>
            <Pattern>%d{ISO8601} %-5p [%t] (%F:%L) - %m%n</Pattern>
        </PatternLayout>
        <Policies>              
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            <SizeBasedTriggeringPolicy size="100 KB" />
        </Policies>
    </RollingFile>

For manuel test ændrer jeg systemets dato og klokkeslæt. Prøv først med at øge 1 time. Logfilerne vil blive genereret, men ikke som forventet. Skift derefter systemdatoen, øg med 1 dag og se resultaterne.

Antag, at den sidste logfil (abc.log) på dag 29-okt er på 50 KB. Konfigurationsstørrelsen er 100 KB. Hvis vi ændrer dagen (forøg med 1 dag) og derefter kører. Derefter vil sidste fil blive omdøbt 29-okt-(noget sekvensnummer).log (50 KB fil, som den kopieres) og ny fil vil blive oprettet med abc .log

Jeg har prøvet dette med simpel servlet med nedenstående konfiguration i web.xml

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>log4j2.xml</param-value>
</context-param>

hold log4j2.xml i src-mappen. log4j2.xml indlæses ikke, hvis vi beholder det i classpath.


Log4j dokumentation:

interval -> (heltal) Hvor ofte en rollover skal ske baseret på den mest specifikke tidsenhed i datomønsteret. For eksempel, med et datomønster med timer som det mest specifikke element og en stigning på 4 rollovers vil forekomme hver 4. time. Standardværdien er 1.

Du bør ændre filnavnsmønsteret, hvis du vil oprette det hver time.


Som Abid nævnte, fortolkes intervalværdi i sammenhæng med mønster, der er angivet som en del af filePattern. Det starter med laveste pålydende. For eksempel, hvis mønsteret indeholder S, vil frekvensen være i millisekunder. Det understøtter datomønsteret som beskrevet i detaljer som en del af SimpleDateFormat java doc http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


Java tag