In my application i want to generate logfile for every one hour with date and time like sample-19.10.2012-1.42p.m.
Can anyone give me some idea?
In my application i want to generate logfile for every one hour with date and time like sample-19.10.2012-1.42p.m.
Can anyone give me some idea?
You are looking for a DailyRollingFileAppender.
Documentation: Log4J Manual DailyRollingFileAppender
Configruation Example (.properties):
log4j.appender.DailyRoller=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRoller.datePattern='.'yyyy-MM-dd_HH
log4j.appender.DailyRoller.file=logs/myLogFile.log
log4j.appender.DailyRoller.layout=org.apache.log4j.PatternLayout
log4j.appender.DailyRoller.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
This Example would create a new File every hour. You can change this by adjusting the date pattern. For example: yy-MM-dd
would create a new logfile every day.
Look at the conversion pattern.
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] %c.%M (%L) %x - %m%n" />
</layout>
</appender>
You can set FileAppender dynamically
SimpleLayout layout = new SimpleLayout();
FileAppender appender = new FileAppender(layout,"your filename",false);
logger.addAppender(appender);