logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remko Popma <remko.po...@gmail.com>
Subject Re: Intermittent log file compression issue
Date Wed, 25 Mar 2015 13:57:57 GMT
Great! Glad to hear that the problem is resolved.
-Remko

On Wed, Mar 25, 2015 at 10:30 PM, Richard Kolb <rjdkolb@gmail.com> wrote:

> 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" <rjdkolb@gmail.com> 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" <rjdkolb@gmail.com> wrote:
> >
> >> Hi Remko
> >>
> >> On 25 March 2015 at 04:21, Remko Popma <remko.popma@gmail.com> 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 <rjdkolb@gmail.com> 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 <rjdkolb@gmail.com>
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: log4j-user-unsubscribe@logging.apache.org
> >>> > For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>>
> >>>
> >>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message