[logback-user] Lots of newbie questions :P

Ceki Gulcu ceki at qos.ch
Sun Sep 13 18:22:00 CEST 2009

Hello Daniel,

Nitro Star wrote:
> Hi!
> I'm using logback to log information about a java server that I'm 
> setting up. I want my log files to change every half hour and to never 
> exceed 500MB. I would also like the logging system to cache 16MB of data 
> before flushing to disk! Finally, I want the fileNamePattern to depend 
> on the hostname where I'm running the server!
> So this are my questions:
> a. I have found a way for the log files to change every hour, but not 
> every half hour... Is there a way to do this? Is there a way I can 
> define my own RollingPolicy?

You can define your own RollingPolicy. You would probably need to override
the computeNextCheck() method in  TimeBasedFileNamingAndTriggeringPolicyBase
so that roll over occurs every 30 minutes.

> b. Is there a way for me to define the fileNamePattern somewhere else 
> other than in the logback.xml file?

Yes. A convenient way to do this is via variable substitution:


> c. Is there a flush() function I can call when my server exists?

By default, FileAppender will flush on every append.

> For b. I have tried something like:
> LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
>         Logger logger = lc.getLogger("ROOT");
>         RollingFileAppender<ILoggingEvent> app = 
> (RollingFileAppender<ILoggingEvent>)logger.getAppender("RootFileAppender");
>         RollingPolicyBase rollingPolicy = 
> (RollingPolicyBase)app.getRollingPolicy();
>         rollingPolicy.stop();
> rollingPolicy.setFileNamePattern("bidderserver-%d{yyyy-MM-dd-HH:mm:ss}-"+hostname+"-ip.%i.log");
>         rollingPolicy.start();

Look at the various test cases. For example:


> But that doesn't seem to work :(
> I'm attaching my current logback.xml file.

The FileNamePattern "dummy-%d{yyyy-MM-dd_HH_mm_ss}.%i.log" tells
logback to roll over every second. That's probably not what you
want. Try "dummy-%d{yyyy-MM-dd_HH}.%i.log" instead.

> Any and all help would be much appreciated!
> Also, I tried visiting #qos.ch <http://qos.ch> in freenode, but there's 
> noone there except me!

Look again.


Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.

More information about the Logback-user mailing list