sanity sanity - 2 years ago 74
Java Question

What are the latest options in Java logging frameworks?

This question gets asked periodically, but I've long felt that existing Java logging frameworks were overcomplicated and over-engineered, and I want to see what's new.

I have a more critical issue on my current project as we've standardized on JSON as our human-readable data encoding, and most logging frameworks I've seen require XML. I would really rather avoid using JSON for 95% of my apps configuration, and XML for the rest just because of the logging framework (truth be told, I hate XML used for anything other than text markup, its original intended purpose).

Are there any hot new Java logging frameworks that are actively maintained, reasonably powerful, have a maven repo, can be reconfigured without restarting your app, and don't tie you to XML?

Answer Source

You have 3 options:

  • Log4J
  • java.util.logging (JUL)
  • Logback (the successor of Log4J)

Now, let's see how they meet your requirements:

  1. actively maintained
  2. reasonably powerful
  3. have a maven repo
  4. can be reconfigured without restarting your app
  5. don't tie you to XML

log4j:

  1. No, not actively maintained
  2. Yes -
  3. Yes -
  4. Yes -
  5. Yes (using Java properties file, see Configuration).

java.util.logging (JUL):

  1. I'd say Yes -
  2. at your discretion -
  3. N/A -
  4. Yes (via JMX or LogManager#readConfiguration() -
  5. Yes (using properties files)

Logback:

  1. Yes -
  2. Yes -
  3. Yes -
  4. Yes, via JMX or autoScan -
  5. Configuration files in XML or Groovy

It looks like you'll have to make some concessions (or find a framework I'm not aware of). I would go for Logback, this is where things happen now.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download