Hi Remko,

Seems I found the issue.

I have two Web apps in the same container that use the same log4j2.xml and
they are in different class loaders.
I misread the docs and assumed it would work.

I am guessing there is a race condition where the one application is
writing while the other tries to archive.

Does that make sense?

Regards,
Richard.
On 25 Mar 2015 12:39, "Richard Kolb" <[email protected]> wrote:

> Hi Remko.
>
> Another symptom is that the log files are not cleared on the daily
> archive.
>
> I.e I started the server on Friday morning and it logs to audit.log and it
> archives daily.
> The audit.log file now contains all the logs since Friday and it not
> cleared.
> The archived logs also contain all the logs to the point they were
> archived.
>
> Regards,
> Richard.
> On 25 Mar 2015 09:20, "Richard Kolb" <[email protected]> wrote:
>
>> Hi Remko
>>
>> On 25 March 2015 at 04:21, Remko Popma <[email protected]> wrote:
>>
>>> So, if you specify the config location with system property
>>> "log4j.configurationFile" then old log files are compressed correctly on
>>> rollover, correct?
>>>
>>
>> Correct.
>> I specify with the parameter  -Dlog4j.configurationFile=file:../log4j2.xml
>> When I did my tests on the command line I specified an absolute path to
>> log4j2.xml
>>
>> See the attached screen shot of the logs that got archived and then
>> suddenly not.
>> I specified the log paths and gzip paths as an absolute directory.
>>
>> 1) This file got gzipped :
>>
>>   *2015-03-25 08:55:37,315 DEBUG RollingFileManager executing
>> synchronous FileRenameAction[C:\usr\local\applications\work*  
>> *-api\domain\work-api\logs\audit.log
>> to C:\usr\local\applications\work-api\domain\work-api\logs\2015-03\aud*  
>> *it-2015-03-25_08_54-1.log,
>> renameEmptyFiles=false]*  *2015-03-25 08:55:37,315 DEBUG
>> RollingFileManager executing async
>> GzCompressAction[C:\usr\local\applications\work-api*  
>> *\domain\work-api\logs\2015-03\audit-2015-03-25_08_54-1.log
>> to C:\usr\local\applications\work-api\domain\work*  
>> *-api\logs\2015-03\audit-2015-03-25_08_54-1.log.gz,
>> deleteSource=true]*
>>
>> 2) This one did the move but not the gzip
>>
>>   *2015-03-25 08:56:05,817 TRACE PatternProcessor.getNextTime returning
>> 2015/03/25-08:57:00.000, nextFileTime=2015/03/25-08*  *:56:00.000,
>> prevFileTime=2015/03/25-08:55:00.000, current=2015/03/25-08:56:05.817,
>> freq=EVERY_MINUTE*  *2015-03-25 08:56:05,832 TRACE
>> DefaultRolloverStrategy.purge() took 0.004088928 seconds*  *2015-03-25
>> 08:56:05,832 DEBUG RollingFileManager executing synchronous
>> FileRenameAction[C:\usr\local\applications\work*  
>> *-api\domain\work-api\logs\audit.log
>> to C:\usr\local\applications\work-api\domain\work-api\logs\2015-03\aud*  
>> *it-2015-03-25_08_55-1.log,
>> renameEmptyFiles=false]*
>> It seems the GzCompressAction log never comes up.
>>
>>
>>
>>> If you include the config file in your application jar and rely on the
>>> classpath then what happens? Is rollover the only thing that breaks?
>>>
>>
>> I have not tried this yet. I will do that now.
>>
>>
>>>
>>> In the latter case, have you tried an absolute path?
>>> (You can use an env: or sys: lookup to make the absolute path prefix
>>> configurable, for example
>>> filePath="${sys:logdir}/$${date:yyyy-MM}/fault-%d{yyyy-MM-dd_hh_mm}-%i.log.gz"
>>> where the value of system property "logdir" is an absolute path.)
>>>
>>
>> Thanks, yes I did this in the above tests.
>>
>> regards,
>> Richard.
>>
>>
>>
>>>
>>> Sent from my iPhone
>>>
>>> > On 2015/03/24, at 23:42, Richard Kolb <[email protected]> wrote:
>>> >
>>> > Hi Remko,
>>> >
>>> > Thanks, very much.
>>> > Changing FilePattern to filePattern did not solve the issue.
>>> > The * was an typeo in the email, sorry for that.
>>> >
>>> > I am still experiencing the same issue inside the container and I can't
>>> > recreate the issue with the same log4j2.xml outside the container.
>>> >
>>> > Next step is to check the log4j2 fine logs and I will report back.
>>> >
>>> > Regards,
>>> > Richard.
>>> > Can you try filePattern with a lower-case 'f' and remove the '*'
>>> characters
>>> > from the filePattern path?
>>> >
>>> > For example:
>>> >> FilePattern="
>>> >> *logs/$${date:yyyy-MM}/fault-%d{yyyy-MM-dd_hh_mm}-%i.log.gz*"
>>> >
>>> >
>>> > Should be
>>> >> filePattern="
>>> >> logs/$${date:yyyy-MM}/fault-%d{yyyy-MM-dd_hh_mm}-%i.log.gz"
>>> >
>>> >
>>> > Regards,
>>> > Remko
>>> >
>>> > Sent from my iPhone
>>> >
>>> >> On 2015/03/24, at 17:12, Richard Kolb <[email protected]> wrote:
>>> >>
>>> >> Hello,
>>> >>
>>> >> I am using log4j 2.2 on Windows 2008 using Java 7 and I'm
>>> experiencing an
>>> >> intermittent issue where my log files used to compress, but now just
>>> move
>>> >> to the archive directory uncompressed.
>>> >>
>>> >> To debug, I changed the file pattern to be on the minute level (in
>>> bold),
>>> >> and I am getting the same issue
>>> >>
>>> >> Any help would be greatly be appreciated..
>>> >>
>>> >> thanks,
>>> >> Richard.
>>> >>
>>> >> <?xml version="1.0" encoding="UTF-8"?>
>>> >> <Configuration status="TRACE" name="API" packages=""
>>> > monitorInterval="30">
>>> >>   <Appenders>
>>> >>   <RollingRandomAccessFile name="CatchAll" fileName="logs/all.log"
>>> >> immediateFlush="false" append="true"
>>> >> FilePattern="logs/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
>>> >>     <PatternLayout>
>>> >>       <Pattern>%d %m%n</Pattern>
>>> >>     </PatternLayout>
>>> >>           <Policies>
>>> >>               <TimeBasedTriggeringPolicy interval="1" modulate="true"
>>> />
>>> >>               <SizeBasedTriggeringPolicy size="2 GB"/>
>>> >>           </Policies>
>>> >>           <DefaultRolloverStrategy max="20"/>
>>> >>   </RollingRandomAccessFile>
>>> >>   <RollingRandomAccessFile name="Audit" fileName="logs/audit.log"
>>> >> immediateFlush="false" append="true"
>>> >>
>>> FilePattern="logs/$${date:yyyy-MM}/audit-%d{yyyy-MM-dd_hh_mm}-%i.log.gz">
>>> >>     <PatternLayout>
>>> >>       <Pattern>%d %m%n</Pattern>
>>> >>     </PatternLayout>
>>> >>           <Policies>
>>> >>               <TimeBasedTriggeringPolicy interval="1" modulate="true"
>>> />
>>> >>               <SizeBasedTriggeringPolicy size="2 GB"/>
>>> >>           </Policies>
>>> >>           <DefaultRolloverStrategy max="20"/>
>>> >>   </RollingRandomAccessFile>
>>> >>   <RollingRandomAccessFile name="Fault" fileName="logs/fault.log"
>>> >> immediateFlush="false" append="true" FilePattern="
>>> >> *logs/$${date:yyyy-MM}/fault-%d{yyyy-MM-dd_hh_mm}-%i.log.gz*">
>>> >>     <PatternLayout>
>>> >>       <Pattern>%d %m%n</Pattern>
>>> >>     </PatternLayout>
>>> >>           <Policies>
>>> >>               <TimeBasedTriggeringPolicy interval="1" modulate="true"
>>> />
>>> >>               <SizeBasedTriggeringPolicy size="2 GB"/>
>>> >>           </Policies>
>>> >>           <DefaultRolloverStrategy max="20"/>
>>> >>   </RollingRandomAccessFile>
>>> >>
>>> >>
>>> >>  <RollingRandomAccessFile name="LegacyAudit"
>>> >> fileName="logs/webservices.log" immediateFlush="false" append="true"
>>> >> FilePattern="
>>> >> *logs/$${date:yyyy-MM}/webservices-%d{yyyy-MM-dd_hh_mm}-%i.log.gz*">
>>> >>     <PatternLayout>
>>> >>       <Pattern>%d %m%n</Pattern>
>>> >>     </PatternLayout>
>>> >>           <Policies>
>>> >>               <TimeBasedTriggeringPolicy interval="1" modulate="true"
>>> />
>>> >>               <SizeBasedTriggeringPolicy size="2 GB"/>
>>> >>           </Policies>
>>> >>           <DefaultRolloverStrategy max="20"/>
>>> >>   </RollingRandomAccessFile>
>>> >>
>>> >>
>>> >>
>>> >>   </Appenders>
>>> >> <!-- Don't forget to set system property for Async
>>> >
>>> -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
>>> >>    to make all loggers asynchronous. -->
>>> >>   <Loggers>
>>> >>       <Logger name="x.FcapsInterceptor" level="trace">
>>> >>           <AppenderRef ref="Audit"/>
>>> >>       </Logger>
>>> >>       <Logger name="x.FcapsRpcInterceptor" level="trace">
>>> >>           <AppenderRef ref="*LegacyAudit*"/>
>>> >>       </Logger>
>>> >>
>>> >>      <Logger name="x.Fault" level="trace">
>>> >>           <AppenderRef ref="*Fault*"/>
>>> >>       </Logger>
>>> >>   <!--Root level="trace">
>>> >>     <AppenderRef ref="CatchAll"/>
>>> >>   </Root-->
>>> >>   </Loggers>
>>> >> </Configuration>
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: [email protected]
>>> > For additional commands, e-mail: [email protected]
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>

Reply via email to