[logback-user] log rollover using %d multiple times in file name pattern?
ceki
ceki at qos.ch
Tue Dec 20 16:36:46 CET 2011
Hi Thomas,
See inline response.
On 20.12.2011 15:09, Thomas Corte wrote:
> Hello,
>
> I'm trying to configure a log rollover with logs being *rolled daily*
> and put into a directory named "yyyy-MM", i.e. one folder for each
> *month* containing that month's logs. I'm using the following appender
> config:
>
> <appender name="FILE"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
> <file>app.log</file>
>
> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
> <!-- rollover every minute -->
> <fileNamePattern%d{yyyy-MM}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
> </rollingPolicy>
>
> <encoder>
> <pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{36} -
> %msg%n%xEx</pattern>
> </encoder>
> </appender>
>
> However, it seems as if the current logback implementation merely
> considers the first %d specification, which leads to a log rotation only
> once per month instead of the desired once per day frequency.
Yes, currently only the first %d token determines the rolling period.
> I figure this is because via %d, the log rotation frequency and the file
> name pattern are somewhat tied together and seemingly can't be specified
> independently.
>
> Is there any way to achieve what I'm trying to do without writing custom
> code?
I've started working on this problem. Can you please enter a bug report
requesting this future along the lines of your email post? It makes
referencing easier.
Here are some possible solutions.
First solution: add an option, say SECONDARY, to %d so that the token is
*not* taken into account when determining the rollover period.
you would write:
<FileNamePattern>%d{yyyy-MM,SECONDARY}/app.%d{yyyy-MM-dd}.log</File...>
Second solution: use a different identifier for the token, for example
%t instead of %d.
you would write:
<FileNamePattern>%t{yyyy-MM}/app.%d{yyyy-MM-dd}.log</FileNamePattern>
I have a slight preference for the first solution because it involves
less code changes.
> Best regards,
>
> Thomas
>
--
Ceki
http://twitter.com/#!/ceki
More information about the Logback-user
mailing list