Re: log4j and log file lock?
Manish Pandit wrote:
You can also look at the SocketAppender/SimpleSocketServer (It is in
the same package as the Syslog appender mentioned by Owen.)
I've seen SocketAppender+SimpleSocketServer being used at several
instances which are similar to your setup. One thing to be careful
about is the message rate; which, if faster than the network
(connection to the server), will cause the client to block.
If you are at a higher log level, say, WARN, is it safe to say that
lower-level (DEBUG, INFO) calls will not risk blocking, nor otherwise have any
effect on the socket? I should think so.
Regardless of destination or concurrency issues, the trick of what to log, at
what level, is both important and fairly devoid of best practices lore.
Few sources even acknowledge the importance of logging, though nearly every
professional programmer practices it. Fewer lay out reasonable strategies, or
even discuss the importance of having a logging strategy. It's arguably more
important to have a rigorous logging discipline at all than to worry about
which one is best.
In normal production scenarios there should be relatively few log messages, so
stress on the socket should be low. Canonically, production runs at WARN or
ERROR, and there should be nearly none of those. Even INFO messages should be
sparse - verbosity is for DEBUG. If you've cranked up your log level to
DEBUG, it's because you've got bigger concerns than a little blocking.