tengo un pequeño problema con log4j.. al ejecutar mi aplicacion (creada con el IDE Netbeans) el log4j no se inicia.. pero acaba funcionando...
Esto es lo que muestra en pantalla la aplicacion al ejecutarla:
run:
log4j:WARN No appenders could be found for logger (volcarsops.manager.Main).
log4j:WARN Please initialize the log4j system properly.
24 feb 2011 09:41:58,257 INFO Bar:20 - Saliendo de Bar!
24 feb 2011 09:41:58,257 INFO Main:53 - Saliendo de la aplicación.
BUILD SUCCESSFUL (total time: 0 seconds)
Siguiendo las pautas de la aplicacion esto es lo que hace.
1- Se inicia la aplicacion y en el main intento mostrar un mensaje con el logger (este falla).
2- Llamo a la otra clase y dentro de ella muestro mensajes con el logger.. que si funciona..
3- vuelvo al main y ahora el logger si funciona..
Estructura de la aplicacion:
Main y clase Bar en el paquete volcarsops.manager
log4j.properties en el paquete recursos.
Estos 2 paquetes en el directorio src.
Os pego el codigo de las clases y del properties:
-->Main:
Código:
-->Clase Barpackage volcarsops.manager; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * * @author amartinez */ public class Main { static Logger logger = Logger.getLogger(Main.class.getName()); final String LOG_FILE = "/recursos/log4j.properties"; /** * @param args the command line arguments */ public Main(){ InputStream in = null; try{ in = this.getClass().getResourceAsStream(LOG_FILE); Properties props = new Properties(); props.load(in); PropertyConfigurator.configure(props); }catch (IOException ex) { logger.error(ex); } finally { try { if (in != null) in.close(); } catch (IOException ex) { logger.warn(ex); } } } public static void main(String[] args) { // TODO code application logic here // BasicConfigurator.configure(); logger.info("Entrando en la aplicación."); Bar bar = new Bar(); bar.doIt(); logger.info("Saliendo de la aplicación."); } }
Código:
-->log4j.properties:package volcarsops.manager; import volcarsops.manager.Main; import org.apache.log4j.Logger; /** * * @author amartinez */ public class Bar extends Main{ static Logger logger = Logger.getLogger(Main.class); public void doIt(){ logger.debug("Dentro de Bar!"); logger.info("Saliendo de Bar!"); } }
Código:
Seria de gran ayuda.. # To change this template, choose Tools | Templates # and open the template in the editor. ### Para dirigir mensajes a la salida estandar ### log4j.appender.pantalla=org.apache.log4j.ConsoleAppender log4j.appender.pantalla.Threshold=INFO log4j.appender.pantalla.Target=System.out log4j.appender.pantalla.layout=org.apache.log4j.PatternLayout log4j.appender.pantalla.layout.ConversionPattern=%d{DATE} %5p %C{1}:%L - %m%n ### Para dirigir mensajes a un fichero ### log4j.appender.archivo=org.apache.log4j.RollingFileAppender log4j.appender.archivo.File=logs/log.txt log4j.appender.archivo.MaxFileSize=20MB log4j.appender.archivo.MaxBackupIndex=3 log4j.appender.archivo.layout=org.apache.log4j.PatternLayout log4j.appender.archivo.layout.ConversionPattern=%d{DATE} %5p %C{1}:%L - %m%n log4j.logger.volcarsops=DEBUG, archivo log4j.rootLogger=INFO, pantalla