Foros del Web » Programación para mayores de 30 ;) » Java »

Warning log4j.. Ayuda

Estas en el tema de Warning log4j.. Ayuda en el foro de Java en Foros del Web. Hola, 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 ...
  #1 (permalink)  
Antiguo 24/02/2011, 02:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Warning log4j.. Ayuda

Hola,
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:
package 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.");
    }

}
-->Clase Bar
Código:
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!");
    }
}
-->log4j.properties:
Código:
# 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
Seria de gran ayuda..
  #2 (permalink)  
Antiguo 24/02/2011, 06:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Warning log4j.. Ayuda

Si sigues el orden de ejecución de las cosas, verás que estás llamando a logger.info("Entrando en la aplicación."); antes de haber inicializado el Logger (en el constructor de Main que se le llama al hacer new Bar() en la línea posterior). A partir de ahí, los siguientes logger funcionan.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 24/02/2011, 06:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Warning log4j.. Ayuda

Gracias chuidiang!! ya habia solucionado el tema llamando al constructor del main en el propio main lo que no habia podido postearlo hasta ahora..
pero muchas gracias por tu ayuda!!

Etiquetas: warning
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:23.