[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