[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:

http://logback.qos.ch/manual/configuration.html#variableSubstitution


> 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:

http://logback.qos.ch/xref-test/ch/qos/logback/core/rolling/RollingFileAppenderTest.html

> 
> 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.

HTH,

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch


More information about the Logback-user mailing list