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.