File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Other Open Source Projects and the fly likes Best Way to Use LOG4J Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Other Open Source Projects
Bookmark "Best Way to Use LOG4J" Watch "Best Way to Use LOG4J" New topic

Best Way to Use LOG4J

Siyaram Singh

Joined: Jan 21, 2004
Posts: 28
From Architecture point of view what could be the best practices to use Log4J. What are diffrent norms we should follow to acheive architectural goal (Performance /scaling, etc), when using Log4J.

How Log4j (Appender)writes event messages to a log file ? It collects certain meessage in buffer and then write in one I/O ?? or For every even log it make one I/O ??

How we can minimise the I/O calls, during Logging??

Lars Vonk
Ranch Hand

Joined: Aug 05, 2005
Posts: 30
If you are worried about performance you can use the org.apache.log4j.AsyncAppender.
This will writes to the log file asynchronous. You can define your buffer size in log4j.xml. You must define the AsyncAppender in xml format this cannot be done in the .properties format. Also if you use this one make sure you call LogManager.shutdown() at application shutdown so the last lines are flushed to the log file.

Siyaram Singh

Joined: Jan 21, 2004
Posts: 28
Thanks a lot !
1. If AsyncAppender is not used, then how log4J writes log event to the file ? It uses any default buffer or It writes one by one event message in log file, I mean one even message = one I/O ???

2 If we use AsyncAppender and setBufferSize(int size).
And Configure Buffer size in log4j.xml.
If set value in setBufferSize(int size) is less than Buffer size in log4j.xml ???
How both are related and what would be the optimum guidlines ???
(default buffer size is set to 128 events)

3. Also I would like to know the actual / practical way to diffrentiate the FATAL, ERROR,INFO.
Is realy FATAL should be used for Business related error ??

I agree. Here's the link:
subject: Best Way to Use LOG4J
It's not a secret anymore!