El log4j se puede configurar tanto de forma programática como externa mediante archivos de configuración especiales. La configuración externa es la más preferida, porque para que surta efecto no requiere cambios en el código de la aplicación, recompilación o redespliegue. Los archivos de configuración pueden ser archivos XML o archivos de propiedades de Java que se pueden crear y editar con cualquier editor de texto o editor XML, respectivamente.
1. Configure log4j mediante programación
Este ejemplo es de este sitio, el código es complicado, así que ¿por qué no limpiarlo?
package Test; import org.apache.log4j.*; public class TestLog { /* * get a static logger instance with name TestLog */ static Logger myLogger = Logger.getLogger(TestLog.class.getName()); Appender myAppender; SimpleLayout myLayout; /* Constructor */ public TestLog() { /* * Set logger priority level programmatically. Though this is better done externally */ myLogger.setLevel(Level.ALL); /* * Instantiate a layout and an appender, assign layout to appender * programmatically */ myLayout = new SimpleLayout(); myAppender = new ConsoleAppender(myLayout); // Appender is Interface /* Assign appender to the logger programmatically */ myLogger.addAppender(myAppender); } // end constructor public void do_something(int a, float b) { /* * This log request enabled and log statement logged, since INFO = INFO */ myLogger.info("The values of parameters passed to method do_something are: "+ a + ", " + b); /* this log request is not enabled, since DEBUG < INFO */ myLogger.debug("Operation performed successfully"); Object x=null; if (x == null) { /* * this log request is enabled and log statement logged, since ERROR * > INFO */ myLogger.error("Value of X is null"); } } // end do_something() public static void main(String []args){ new TestLog().do_something(1, 3); } } // end class MyClass |
Aquí está la instantánea de la salida:
2. Configurar Log4j externamente
Cree un archivo llamado «log4j.properties» en el directorio «src» de su proyecto.
# Define the root logger with appender file log = /home/ryan/Desktop/log4j log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
Aquí está el código java.
package Test; import org.apache.log4j.Logger; public class TestLogger { static Logger myLogger = Logger.getLogger(TestLog.class.getName()); public static void main(String[] args) { myLogger.info("testing"); myLogger.warn("warning testing"); myLogger.error("this is an error"); } } |
El registro se imprimirá en el archivo log.out en el directorio / home / ryan / Desktop / log4j.