Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

log4j properties DailyRollingFileAppender does not work

I want daily logs with the log file appended with the date in yyyy-dd-mm format. When I use DailyRollingFileAppender, a new log file is not created. The logs are written to the same log file. Also, the date Pattern provided is not considered. The log file created is LoggerFile.log. And every content(even on the next day) is written to this file.

I am using the log4j-1.2.17 jar. I am developing in Netbeans 7.3.1 in Java.

Is there anyone using this JAR and facing such a problem. Please help!

Here is the content of the properties file I use:

# Root logger option
log4j.rootLogger=ERROR,FILE,stdout

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

log4j.appender.FILE.File=.//..//logs//LoggerFile.log

# Define the layout for file appender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS zzz} %5p     %c{1}:%L - %m%n

log4j.appender.FILE.MaxFileSize=10MB


# Direct log messages to stdout
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`
like image 301
Nitin Kundapur Bhat Avatar asked Feb 21 '14 08:02

Nitin Kundapur Bhat


People also ask

How does log4j properties work?

The log4j. properties file is a log4j configuration file which stores properties in key-value pairs. The log4j properties file contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.

Is log4j properties required?

rootLogger property sets the Level (DEBUG here) and Appender (A1 here) for root Logger. This is not mandatory. Root logger does not have a default appender attached and it can exist without an appender.


2 Answers

I had similar requirements of daily log file rotation.. (Though the question is older, thought the answer would help others)..

Key points:

  1. First of all, we can avoid using DailyRollingFileAppender. Why? DailyRollingFileAppender has been observed to exhibit synchronization issues and data loss. The log4j extras companion includes alternatives which should be considered for new deployments and which are discussed in the documentation for org.apache.log4j.rolling.RollingFileAppender. Reference: Documentation of Daily Rolling File Appender

  2. Apache extras log4j, Would suggest to use org.apache.log4j.rolling.RollingFileAppender with the Time based rolling policy

  3. May find a sample configuration for time based rotation of log.

Hope this helps.

like image 159
Santosh Kumar Arjunan Avatar answered Oct 14 '22 09:10

Santosh Kumar Arjunan


First of all you have an error because the DailyRollingFileAppender does not support the property MaxFileSize.

Then you can try to remove the char ' from the DatePattern:

Try changing

log4j.appender.FILE.DatePattern='.'yyyy-MM-dd

to

log4j.appender.FILE.DatePattern=.yyyy-MM-dd
like image 22
Enrico Suci Avatar answered Oct 14 '22 08:10

Enrico Suci