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