User Tools

Site Tools


java:log4j

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:log4j [2009/10/20 13:37]
Alexander Rind content
java:log4j [2012/01/04 10:30] (current)
Alexander Rind link newer logging packes
Line 8: Line 8:
  private static Logger logger = Logger.getLogger(MyClass.class);​  private static Logger logger = Logger.getLogger(MyClass.class);​
 ... ...
- logger.info("​BUTTON step backward");+ logger.fatal("​text"​);​ 
 + logger.error("​text"​);​ 
 + logger.warn("​text"​);​ 
 + logger.info("​text"​);​ 
 + logger.debug("​text"​);​ 
 + logger.info("​text");
 ... ...
  if (logger.isTraceEnabled())  if (logger.isTraceEnabled())
Line 15: Line 20:
  if ((new File("​log4j.properties"​)).canRead())  if ((new File("​log4j.properties"​)).canRead())
  PropertyConfigurator.configure("​log4j.properties"​);​  PropertyConfigurator.configure("​log4j.properties"​);​
 +</​code>​
 +
 +**log4j.properties**
 +<​file>​
 +log4j.rootLogger=TRACE,​ A1
 +log4j.appender.A1=org.apache.log4j.ConsoleAppender
 +log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 +
 +# Print the date in ISO 8601 format
 +log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
 +
 +log4j.logger.gui.MainFrame=INFO
 +</​file>​
 +
 +<code java>
 +        try {
 +            if ((new File("​log4j.properties"​)).canRead())
 +                PropertyConfigurator.configure("​log4j.properties"​);​
 +        }
 +        catch (SecurityException e) {
 +        }
 </​code>​ </​code>​
  
Line 29: Line 55:
  
 Read more opinions [[http://​www.google.at/​search?​q=log4j+java.util.logging]] Read more opinions [[http://​www.google.at/​search?​q=log4j+java.util.logging]]
 +
 +Integrate JUL into log4j:
 +  * http://​shrubbery.mynetgear.net/​c/​display/​W/​Routing%2Bjava.util.logging%2Bmessages%2Bto%2BLog4J
 +  * http://​people.apache.org/​~psmith/​logging.apache.org/​sandbox/​jul-log4j-bridge/​examples.html
 +  * use SLF4J
  
 === log4j vs. Commons Logging === === log4j vs. Commons Logging ===
  
 [[http://​commons.apache.org/​logging/​ | Commons Logging]] seems to be a compatibility layer so that a library can work with different logging implementations. [[http://​commons.apache.org/​logging/​ | Commons Logging]] seems to be a compatibility layer so that a library can work with different logging implementations.
 +
 +=== newer logging packages ===
 +
 +  * [[http://​www.slf4j.org/​ | Simple Logging Facade for Java (SLF4J)]]
 +  * [[http://​www.slf4j.org/​nlog4j/​ | NLOG4J]] --- discontinued
 +  * [[http://​logback.qos.ch/​ | Logback]] --- planned as successor of log4j and nlog4j
  
  
Line 40: Line 77:
 If the program reads a ''​log4.properties''​ file from the file system, ​ If the program reads a ''​log4.properties''​ file from the file system, ​
 the file will likely get lost and users will be confronted with a ''​FileNotFoundException'' ​ the file will likely get lost and users will be confronted with a ''​FileNotFoundException'' ​
-and might not be able to run the program.+or might not be able to run the program.
  
 Here is a solution that works well for me: Here is a solution that works well for me:
Line 48: Line 85:
     * if you create a jar-file, this will be the root directory of the jar-file     * if you create a jar-file, this will be the root directory of the jar-file
     * for the default settings use minimal logging (e.g., ConsoleAppender,​ WARN level)     * for the default settings use minimal logging (e.g., ConsoleAppender,​ WARN level)
-  - a customized ''​log4j.properties''​ file is located in the working directory+  - a customized ''​log4j.properties''​ file can be located in the working directory
     * if you work with Eclipse, this will be the project directory     * if you work with Eclipse, this will be the project directory
   - in the main method **check, whether ''​log4j.properties''​ exists** in the working directory   - in the main method **check, whether ''​log4j.properties''​ exists** in the working directory
-    * if it exist, then load this file+    * if it exist and is readable, then load this file 
 +    * handle SecurityException (e.g., for Java Web Start) ​
     * if it does not exist, log4j will load the file from the classpath by default     * if it does not exist, log4j will load the file from the classpath by default
   - if users want to override this behavior, they can    - if users want to override this behavior, they can 
java/log4j.1256038629.txt · Last modified: 2009/10/20 13:37 by Alexander Rind

alex @ ieg: home about me publications research