简体   繁体   中英

Log4j MaxFileSize with DailyRollingFileAppender

My Goal is to generate log file on each day but of MaxFileSize=100KB

So I used DailyRollingFileAppender since I am using log4j 2.2 version

Date is working fine and when I used MaxFileSize it didnt worked and new file was not created based on filesize still date is working.

Problem : MaxFileSize not working with DatePattern for DailyRollingfileAppender

Here is log4j.properties file code:

log4j.rootLogger=DEBUG, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.file.layout=org.apache.log4j.PatternLayout  
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n
log4j.appender.file.File=${catalina.home}/logs/abc
log4j.appender.file.MaxFileSize=80KB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.DatePattern='-'yyyy-MM-dd'.log'

Something need to be changed in date pattern but dont know yet

Try below configuration for rotating the file based on time and size -

status = warn
name= properties_configuration

property.basePath = ${catalina.home}/logs/

appender.console.type = Console
appender.console.name = consoleLogger
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %level %c{1}:%L - %msg%n
appender.rolling.type = RollingFile
appender.rolling.name = fileLogger
appender.rolling.fileName=${basePath}/abc.log
appender.rolling.filePattern=${basePath}abc_%d{yyyyMMdd}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %level (%F:%L) - %msg%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 100 KB

# write your package name as the value of this key
logger.example.name = log4j2.example
logger.example.level = info
logger.example.additivity = false
logger.example.appenderRef.rolling.ref = fileLogger
logger.example.appenderRef.console.ref = consoleLogger

rootLogger.level = error
rootLogger.additivity = false
rootLogger.appenderRef.rolling.ref = fileLogger
rootLogger.appenderRef.console.ref = consoleLogger
   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xml>
    <Configuration>
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout
                    pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
            </Console>

            <!-- Rolling File Appender -->
            <RollingFile name="RollingFile">
                <FileName>C:/logs/x2c.log</FileName>
                <FilePattern>C:/logs/%d{yyyy-MM-dd-hh-mm}-%i.log</FilePattern>
                <PatternLayout>
                    <Pattern>style{%d{yyyy-MMM-dd HH:mm:ss a}}{black} %-5p %style{[%t]}{blue} %highlight{%level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=green, DEBUG=blue} %logger{36} - %msg%n</Pattern>
                </PatternLayout>
                <Policies>
                    <TimeBasedTriggeringPolicy interval="2"
                        modulate="true" />
                        <SizeBasedTriggeringPolicy size="80 KB" />
                </Policies>
                <DefaultRolloverStrategy max="5" />
            </RollingFile>

        </Appenders>
        <Loggers>
            <Logger name="com.mkyong.common.controller" level="debug"
                additivity="false">
                <AppenderRef ref="RollingFile" />
                <AppenderRef ref="Console" />
            </Logger>
            <Root level="trace">
                <AppenderRef ref="Console" />
            </Root>
        </Loggers>

    </Configuration>

This is the xml based configuration which is working fine but exact properties or basic configuration isn't working. File not created and no console output

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM