2

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?

user1660325
  • 747
  • 4
  • 20
  • 35

3 Answers3

3

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.

2

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>
user
  • 3,058
  • 23
  • 45
0

You can set FileAppender dynamically

SimpleLayout layout = new SimpleLayout();           
FileAppender appender = new FileAppender(layout,"your filename",false);
logger.addAppender(appender); 
Azodious
  • 13,752
  • 1
  • 36
  • 71