Is it possible to configure java.util.logging to compress log files when it "rolls" onto using a new log file? For example, an extract from my log configuration file looks like this:
java.util.logging.FileHandler.level = ALL
java.util.logging.FileHandler.pattern = /blah.log
java.util.logging.FileHandler.limit = 10000000
java.util.logging.FileHandler.count = 5
Ideally I would like current log messages to be written to blah.log.0 whilst retaining blah.log.1.gz, blah.log.2.gz, etc.
Also please note that I do not wish to use a different logging framework.
util. logging. A Filter can be used to provide fine grain control over what is logged, beyond the control provided by log levels.
The JDK Logging Adapter is a custom implementation of java. util. logging. LogManager that uses Log4j.
Java provides a built-in framework in the java. util. logging package. There are also many third-party frameworks, including Log4j, Logback, and tinylog.
Yes but you must write your own file handler. Just copy the source code for FileHandler into your project (you can't extend the class in any useful way) and modify the open()
method of MeteredStream
.
After that, just use the normal configuration to use your new handler.
No, not without writing it yourself, but what you can do is schedule a cron job that does this regularly. This would probably be the quickest solution.
I doubt it is available with in Java logging framework. You can setup a shell script which compresses all the previous log files everyday night.
If you really want to do it in java, you might have to write your own filehandler.
Check the method which creates a new file and try to compress the previous one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With