tags:

views:

254

answers:

3

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.

+3  A: 

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.

Aaron Digulla
+2  A: 

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.

Taylor Leese
+1  A: 

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.

Thej