Search code examples
perllogginglog4perl

How to configure DateFileAppender for log4perl


I know how to configure the log4j so that the logs file gets rotated automatically with the date appended to the log file.?

log4j.appender.schedulerService.Directory = ${logdir}
log4j.appender.schedulerService.Prefix = web.log_
log4j.appender.schedulerService.Suffix = 

How can I achieve the same with log4perl?

I tried the same config for log4Perl, but it looks like for filename parameter is mandatory. Any help is appreciated.

Mandatory parameter 'filename' missing in call to Log::Dispatch::File::_make_handle

Solution

  • Have a look at Log::Dispatch::File::Stamped - it will write directly to a datestamped logfile, avoiding the need to actually rotate it (it will just start a new logfile whenever it detects the date has changed).

    log4perl.appender.Logfile=Log::Dispatch::File::Stamped
    log4perl.appender.Logfile.min_level=info
    log4perl.appender.Logfile.filename=foo.log
    log4perl.appender.Logfile.stamp_fmt=%Y%m%d