Praise from log4j users


Log4J was named as a finalist in the "Most Useful New or Revised Java API/Technology" category, and Tomcat 3.2 was named as a finalist in the "Most Innovative Java Product" category.

JavaWorld, April 2001


Log4j is an incredibly well designed and functional logging tool. I caught the religion last summer and with every project I work on, most everyone agrees it's a must know/have tool. Previously I was using another Java logging library developed internally within my company which I liked. I had no desire to learn another but did so for the sake of due diligence. Log4j has the following features which set it apart from others I have seen.

Highly configurable - the ability to configure the properties of your loggers (called Categories in log4j) from within a property file is indispensible. This allows you to change the characteristics of your logging without changing code. You can change the logging level, the format of the output and the output targets very easily. One can also use XML files (though I haven't).

Unobtrusive - I'm finishing a project where we started using another logging tool. The log statements were clumsily long and required using predefined constants that were hard to remember. When writing the initial code, "System.out.println" was so much easier to type that people did this for tracing with the best of intentions to place legitimate logging in later. You know the story. It never happened. Log4j statements are shorter than "System.out.println" statements. This encourages people to actually use it rather than simply agreeing to.

Easy configuration - With just one statement, log4j will configure itself with a set of defaults that are useful until you get around to actually writing your property file, XML file or whatever. Like the point just made before, this allows log4j to be used at the outset of coding rather than having to wait because you haven't considered how you wish logging to be configured. The application code itself does not have to know how logging will be configured.

Performance Concerns - Since Java does not use pre-processor macros, most Java tracing is always compiled into the code. That means that the decision to compile is made at runtime. There are times when performance is so paramount that even checking whether to log is a concern. There are other extremes where other delays make this insignificant so that the performance is easily sacrificed for the increased amount of information logged (such as method name, class name and line number in source code). The log4j javadoc documentation explains which information elements are quickly logged and which may compromise performance. It also includes benchmarks that demonstrate how fast certain statements are logged for a few sample machine configurations.

Hierarchical Categories - This is highly useful in component based development. Each component has its own set of logging categories. When individually tested, the properties of these categories may be set however the developer wishes. When combined with other components, the categories inherit the properties determined by the integrator of the components. One can selectively elevate logging priorities on one component without affecting the other components. This is useful when you need a detailed trace from just a single component without crowding the trace file with messages from other components. All this can be done with property files - no change in the code is required.

Easily specified output format - Some Java and OO purist disagree with me on this, but allowing one to use printf-style output format specification is powerful, convenient and compact. Log4j provides a Layout class with this capability. Of course, for those who wish, you may implement the Layout interface yourself with something "more OO". Naturally, the printf-style pattern can be specified in a property file.

Customization - Like other loggers, log4j is interface-based making it possible to extend. Log4j supplies useful implementations that are extended easily without having to implement the interface from scratch.

Paul Glezen (pglezen at atdial.net), December 3rd, 2000


This Java package is probably one of the best and most reliable packages around, and really helps development and maintenance of quality software. Thanks to all contributors who have made such a good work.

Denis Balazuc (denis.balazuc at trader.com), December 8th, 2000


This is just a quick note of thanks for publishing your article in Javaworld. Log4j is really easy to use. While I was initially skeptical of the idea, code like this makes me a believer in the concept of Open Source.

Paul Hyndman (PaulHyndman at mynd.com), November 29th, 2000


I just recently became aware of log4j and am just now begining to use it. I want to thank you and the rest of the log4j development team for making this functionality available. You are providing an outstanding service to the development community. Please pass my regards on to the other team members.

Rich Coco (racoco at celoxnetworks.com), November 16th, 2000


Just thought I'd let you know that I am using your log4j as a part of an e-commerce application (www.consumerd.com). I am using the XML configuration classes and have to say that I am most impressed.

Richard King (Richard.King at capgemini.co.uk), October 25th, 2000


You should see what we've used log4j for at work... I put together this Servlet that can interpret SOAP messages and invoke little "handlers". Logging is pervasive through out the system, and the handler developers can "create" their own Categories dynamically using the getInstance method of Category.

It's funny when I get an email from someone at work who's using the toolkit with a "it didn't work" question, and I ask them to check out the log... due to the coolness of log4j, they can track down their mistake immediately.

Christopher Taylor (cstaylor at pacbell.net), September 2nd, 2000


I am using log4j for a project I am currently working on. The simplicity and ease with which new appenders can be written makes it one of the best logging systems I have ever used.

Manish Balsara (manishb at aumsoft.com) August 28th, 2000


Thank you for writing this incredibly effective piece of software. You have made my and my team's lives much easier.

Guy Nirpaz, Java Architect (guyn at tantian.com) August 14th, 2000


Thank you so much for developing such a sleek package. I think it's going to be a part of many of my projects in the future :)

Alice Nakajima (alice.t.nakajima at saic.com) May 10th, 2000


Thank you very much for your great work on log4j, which is really powerful and flexible logging system. Log4j is now playing an important role in our project.

Zeng Qiang (zeng.qiang at europeloan.com) April 26th, 2000


Thank you and your team giving us a excellent tool to help us to develop our Java applications. After evaluation, our team is ready to use log4j as our eCare product's diagnostic strategy.

Jianbo Wang (jiwang at Daleen.com) April 25th, 2000


Was trying to use the log4j tracer ... great job, by the way !

Actually I'm evaluating the log4j package for use in our commercial projects. We have our own tracer package which is by far less powerfull and less configurable than yours.

Joerg Palmer (Joerg.Palmer at Compart.net) April 14th, 2000


Hooray, log4j! It's now all over my current project, and my colleagues were pleasantly surprised at the ease of debugging. I gave them my jarfile, it didn't work, I said "oh, just change this configuration file" and presto, logging to a file. They're happy.

Nelson Minar CTO, Popular Power, Inc. (nelson at popularpower.com) April 14th, 2000


I really dig your log4j package... just started using it on our linux and os390 boxes for the java servlets we run in websphere. Still trying to get the hang of it properly, but what I do have working is working great. (Not to mention your makefile tutorial which has improved my life significantly! :-)

Anthony (ant at sanlam.co.za) April 13th, 2000


Thanks for providing log4j: it's a very useful package.

Andrew Harris (Andrew.Harris at capgemini.co.uk) April 10th, 2000


I just started using log4j v.0.8.1. It is quite what I was looking for.

So here is my "THANK YOU" to all the contributors. I think I'll join the club.

Avy Sharell (asharell at club-internet.fr) March 8th, 2000


I just wanted to thank you for log4j which is a great piece of software!

We are using it in the FREE e-democracy project http://www.thecouch.org/free/ to provide an effective security audit trail in our electronic voting software.

Jason Kitcat (jeep at thecouch.org) March 29th, 2000


Thanks for making log4j available. I like the changes in v0.8 and am using it in all my java projects.

Steven Marcus (srnm at awaretechnologies.com) February 19th, 2000


First congratulation for your great job on the Log mechanism log4j, it's really valuable.

Sebastien Sahuc (ssahuc at imediation.com) January 4th, 2000


Just a few remarks to your log4j Logging-Tool. First of all, in my opinion, it is exactly what many Java programmers need: A small but very useful tool complementing the debugger ;-) The logs help me to debug results generated on a distant client.

Jens Uwe Pipka (jens.pipka at gmx.de) October 25th, 1999