Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
-
Linux 3.10.0-229.20.1.el7.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Description
I am using the following config
<Configuration status="warn" name="in.transerv" packages=""> <Properties> <Property name="baseDir">/var/log/tomcat</Property> </Properties> <Appenders> <RollingFile name="RollingFile" fileName="${baseDir}/app.log" filePattern="${baseDir}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd}.log.gz"> <PatternLayout pattern="%5p %d{ISO8601} [%t][%x] %c - %m%n" /> <TimeBasedTriggeringPolicy/> </RollingFile> </Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="RollingFile"/> </Root> </Configuration>
In my Tomcat startup, I have specified the log4j.xml file as -Dlog4j.configurationFile=<path to file>
It gets initialized properly as I see the logs coming in the app.log
However, at midnight of each day when it is supposed to rollover, I see the following directory structure
drwxr-xr-x 2 root root 62 Sep 18 00:00 2016-09 -rw-r--r-- 1 root root 0 Sep 18 07:48 app.log-2016-09-18 -rw-r--r-- 1 root root 351893 Sep 18 07:58 app.log
The file for the previous day gets truncated to 0 bytes and the directory 2016-09 contains NOTHING.
I just want to log to app.log and each day, I want to save the previous days log file as a .gz with the date pattern. But it is not happening.
I was using log4j 1.x, I switched over to 2.x since I was having issues with log files getting corrupted (log lines disappearing) when multiple tomcat processes tried to write into the same file.
Please help me since these logs are critical to our application. Thanks.