[ 
https://issues.apache.org/jira/browse/LOG4J2-531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896639#comment-13896639
 ] 

Geoff Ballinger edited comment on LOG4J2-531 at 2/10/14 3:11 PM:
-----------------------------------------------------------------

I can confirm that using your staged artefacts log files / lines are no longer 
being lost which is the main thing!

The distribution of the log files into the folders is a bit odd however and it 
feels like there might be a flaw in the timestamp logic in there somewhere 
still.

I kicked off the test run at {{14:29:11}} using my example setup from the first 
post above more or less as is - but with a more sensible {{max=99}}.

The initial folder created was {{201402101429}} and contained 27 numbered files 
prefixed {{TEST-201402101429-}}. Numbers 1-12 contained 16 log lines each with 
timestamps {{14:29:11,667}} to {{14:29:59,649}}, number 13 a single log line 
with timestamp {{14:29:59,899}}, and numbers 14-27 again contain 16 lines each 
with timestamps {{14:30:00,164}} to {{14:30:56,155}}.

The second folder created was {{201402101430}} and contained 15 numbered files. 
The first file contained 15 log lines with timestamps {{14:30:56,405}} to 
{{14:30:59,919}}. The subsequent files contained 16 log lines each with 
timestamps {{14:31:00,170}} to {{14:31:56,123}}.

The third folder created was {{201402101431}}. The first file contained 15 log 
lines with timestamps {{14:31:56,373}} to {{14:31:59,886}}. The subsequent 
files contained 16 log lines each with timestamps from {{14:32:00,136}} onwards.

So in summary after the first minute the majority of log lines from minute X 
end up in the folder for minute X-1. The exception are the last file of lines 
which end up in the correct folder.

Geoff.


was (Author: geoffballinger):
I can confirm that using your staged artefacts log files / lines are no longer 
being lost which is the main thing!

The distribution of the log files into the folders is a bit odd however and it 
feels like there might be a flaw in the timestamp logic in there somewhere 
still.

I kicked off the test run at {{14:14:09}} using my example setup from the first 
post above more or less as is - but with a more sensible {{max=99}}.

The initial folder created was {{201402101429}} and contained 27 numbered files 
prefixed {{TEST-201402101429-}}. Numbers 1-12 contained 16 log lines each with 
timestamps {{14:29:11,667}} to {{14:29:59,649}}, number 13 a single log line 
with timestamp {{14:29:59,899}}, and numbers 14-27 again contain 16 lines each 
with timestamps {{14:30:00,164}} to {{14:30:56,155}}.

The second folder created was {{201402101430}} and contained 15 numbered files. 
The first file contained 15 log lines with timestamps {{14:30:56,405}} to 
{{14:30:59,919}}. The subsequent files contained 16 log lines each with 
timestamps {{14:31:00,170}} to {{14:31:56,123}}.

The third folder created was {{201402101431}}. The first file contained 15 log 
lines with timestamps {{14:31:56,373}} to {{14:31:59,886}}. The subsequent 
files contained 16 log lines each with timestamps from {{14:32:00,136}} onwards.

So in summary after the first minute the majority of log lines from minute X 
end up in the folder for minute X-1. The exception are the last file of lines 
which end up in the correct folder.

Geoff.

> Rolled log files overwritten by RollingFile appender with composite time and 
> size based policies
> ------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-531
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-531
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-beta9
>         Environment: Ubuntu 12.04 and 13.04, java version "1.7.0_51"
>            Reporter: Geoff Ballinger
>            Assignee: Remko Popma
>             Fix For: 2.0-rc1
>
>
> We have a system which generates high volume logs which are required to be 
> preserved for audit purposes, and have been having problems with files being 
> unexpectedly overwritten.
> We are using a RollingFile appender with day granularity, time based and size 
> based triggering policies, and a rollover strategy with a suitably large max 
> value.
> I have created a simple test case with minute granularity to quickly 
> illustrate the problem, which is v. similar to the example given in the 
> documentation:
> {noformat}
> import org.apache.logging.log4j.LogManager;
> import org.apache.logging.log4j.Logger;
> public class LogTest
> {
>     private static final Logger logger = LogManager.getLogger("TestLogger");
>     public static void main(String[] args) throws Exception
>     {
>         for (long i=0; ; i+=1) {
>             logger.debug("Sequence: " + i);
>             Thread.sleep(250);
>         }
>     }
> }
> {noformat}
> ... with a config of:
> {noformat}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration>
>     <Appenders>
>         <RollingFile name="Test" fileName="logs/test.log" 
> filePattern="logs/test/$${date:yyyyMMddHHmm}/TEST-%d{yyyyMMddHHmm}-%i.log.gz">
>             <PatternLayout pattern="%d %p (%t) [%c] - %m%n"/>
>             <Policies>
>                 <TimeBasedTriggeringPolicy />
>                 <SizeBasedTriggeringPolicy size="1 KB"/>
>             </Policies>
>             <DefaultRolloverStrategy max="999999"/>
>         </RollingFile>
>     </Appenders>
>     <Loggers>
>         <Root level="debug">
>             <AppenderRef ref="Test"/>
>         </Root>
>     </Loggers>
> </Configuration>
> {noformat}
> If this is run as is many of the rollover logfiles have other files written 
> over them and are lost, as can clearly be seen by the gaps in the remaining 
> sequence numbers, and the order the sequence numbers appear in the resulting 
> files.
> If the time based policy is removed from the config and it is re-run then all 
> sequence numbers are correctly stored and in the expected order., Without the 
> time based trigger some are carried over into the folder for the next period 
> which is not ideal, though is what we are using at present to avoid data loss.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to