Rajakrishnan created LOG4J2-1204:
------------------------------------

             Summary: log4j2 appending the entries of current day log in 
previous log file
                 Key: LOG4J2-1204
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1204
             Project: Log4j 2
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 2.4.1
         Environment: Windows 7 Enterprise , Core i5 vPro, 4Gb RAM
            Reporter: Rajakrishnan


This is my scenario: For my website I have used log4j2 for rolling log files. 
currently I am generating 3 log file which consist of 2 rolling file (trace & 
error) and 1 routing appender.

1) Trace log of entire date (rolling file appender)

2) Error log of entire date (rolling file appender)

3) logged users activity log for entire day (routing file appender)

Below is my log4j2.xml using for the above scenario, which works exactly as per 
the requirement.

{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="WARN" name="mywebsite" monitorInterval="30">
    <Appenders>

        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] 
- %msg%n" />
        </Console>

        <RollingFile name="error-log" append="true"
            fileName="D:/client/error [${date:yyyy-MM-dd}].log" 
filePattern="D:/lient/error-%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] 
- %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="250 MB" />
            </Policies>
        </RollingFile>

        <RollingFile name="trace-log" append="true"
            fileName="D:/client/trace [${date:yyyy-MM-dd}].log" 
filePattern="D:/client/trace-%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] 
- %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="250 MB" />
            </Policies>
        </RollingFile>

        <Routing name="RoutingAppender">
            <Routes pattern="$${ctx:logFileName}">
                <Route>
                    <RollingFile name="Rolling-${ctx:logFileName}" append="true"
                        
fileName="D:/userlog/${ctx:logFileName}~${date:yyyy-MM-dd}.log"
                        
filePattern="D:/userlog/${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.log.gz">
                        <PatternLayout
                            pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] 
[%logger{1}] - %msg%n" />
                        <Policies>
                            <TimeBasedTriggeringPolicy interval="1" 
modulate="true" />
                            <SizeBasedTriggeringPolicy size="512 MB" />
                        </Policies>
                    </RollingFile>
                </Route>
                <Route ref="Console" key="${ctx:logFileName}" />
            </Routes>
        </Routing>

    </Appenders>

    <Loggers>
        <Root level="trace" additivity="false">
            <Appender-Ref ref="Console"/> 
            <Appender-Ref ref="trace-log" level="trace" />
            <Appender-Ref ref="error-log" level="error" />
            <Appender-Ref ref="RoutingAppender" />
        </Root>
    </Loggers>
</Configuration>

{code}

I am new to log4j2, I somehow managed to configure the log4j xml from the 
sources in internet. Rolling file were created for every day and file append-er 
created for each user and catches the respective events in the respective files 
for the entire day, .

Issue is :

When date changes, events of current day were added in the previous day log 
file.

For example the trace.log file of 1st November has the log events entries of 
2nd November.

This happens for file append-er too .

For example file append-er will generate log file based on user log's in say 
log file named john-01-112015.log was created yesterday. and same user log's in 
2nd November a new file should be rolled out as per the configuration. but the  
logs of 2nd November is added in the john-01-112015.log as said in the previous 
scenario.
new log file should be triggerd everyday, but it fails and logs were appended 
in the existing log of the logged user.

When the tomcat is stop started then the new file genereted, but the issue 
exist until the next stop start. we can't do stop start in  production env..

Guys in stackoverflow suggested to raise a ticket ,since it might be a possible 
bug.

Is there anything wrong in the log4j2.xml ? guys help me to solve this issue. 
Guide me if i did anything wrong 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to