I have now tried various combinations of RollingFile and 
RollingRandomAccessFile and their settings, but when used from weblogic 12C 
with  jdk1.8.0_74 I can simply not find a way to make log4j clear the file 
after rolling, except if append="false" is added (and everything works fine 
when the same configuration is used for logging in eclipse).

Among other things I also tried to remove the Policies tag below so that 
SizeBasedTriggerPolicy was not enclosed by a Policies tag. That actually made 
things a little worse, and in addition to not clearing the file, when rolling, 
there were only made one rolling file with the name .1 instead of the 4 that 
was specified.

I think I will end up skipping log4j as I can't skip weblogic :(




From: Carlsen, Rasmus
Sent: 4. marts 2016 14:24
To: 'log4j-user@logging.apache.org'
Subject: RollingFile does not reset file when rolling

Hi
I use log4j 2.5 on weblogic 12C (By adding the argument 
-Dlog4j.Configuration=log4j2.xml) with this configurationfile:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="320">
   <Appenders>
       <RollingFile name="com.logica.poltacho.soap.file.appender" 
fileName="D:/oracle/config/domains/poltacho3/servers/server1/logs/poltacho-soap.log"
                              
filePattern="D:/oracle/config/domains/poltacho3/servers/server1/logs/poltacho-soap-%i.log">
                 <PatternLayout>
                             <Pattern>%d{ISO8601} %-5p %c{1} transId: 
%X{transactionId} %m%n</Pattern>
               </PatternLayout>
              <Policies>
                             <SizeBasedTriggeringPolicy size="1 MB" />
             </Policies>
            <DefaultRolloverStrategy max="4" />
       </RollingFile>
    </Appenders>
    <Loggers>
          <Logger name="com.logica.poltacho.ws.SoapHandler" level="info" 
additivity="false">
                   <AppenderRef ref="com.logica.poltacho.soap.file.appender" />
          </Logger>
    </Loggers>
</Configuration>


The file role when increased with about 1 MB but it is not reset! The result is 
that both the logfile and new rolled files keep growing in size like this:

poltacho-soap.log        3>MB
poltacho-soap-3.log    3MB
poltacho-soap-2.log    2MB
poltacho-soap-1.log    1MB

If I add append="false" everything works fine and I get the expected result:

poltacho-soap.log        1<MB
poltacho-soap-3.log    1MB
poltacho-soap-2.log    1MB
poltacho-soap-1.log    1MB

It is just that I don't want any existing logfile to be cleared when 
application startup.
If I use the same log4j configuration from eclipse in unittests, everything 
works fine also without append="false".

Have you seen this before and can you give me a hint for a solution?

Regards, Rasmus Carlsen

Reply via email to