¿Cuál es la ruta de volcado de log4j's por defecto?

Hola soy nuevo en conceptos de programación y estoy tratando de hacer algo con log4j. Así que estoy leyendo tutoriales Log4j donde encontré el siguiente código:

package test;
import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;

public class Log4jExample {

    /* Get actual class name to be printed on */
        static Logger log = Logger.getLogger(Log4jExample.class.getName());
        public static void main(String[] args)throws IOException,SQLException
        {
            log.debug("Hello this is an debug message");
            log.info("Hello this is an info message");
        }

}

Pero después de ejecutar esto en eclipse no soy capaz de localizar el archivo de registro generado. ¿Puede alguien decirme dónde se vuelca el archivo? También me ayudan con algunos de los mejores sitios wherefrom puedo aprender Log4j y Java Doc desde el principio. Gracias

Solución

Para redirigir la salida de tus logs a un archivo, necesitas usar el FileAppender y definir otros detalles del archivo en tu archivo log4j.properties/xml. Aquí hay un archivo de propiedades de ejemplo para el mismo:

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Siga este tutorial para aprender más sobre el uso de log4j:

http://www.mkyong.com/logging/log4j-log4j-properties-examples/

Comentarios (1)

Por defecto, Log4j registra en standard output y eso significa que deberías ser capaz de ver los mensajes de registro en tu consola de Eclipse. Para registrar en un fichero necesitas usar un FileAppender explícitamente definiéndolo en un fichero log4j.properties en tu classpath.

Crea el siguiente fichero log4j.properties en tu classpath. Esto te permite registrar tu mensaje tanto en un fichero como en tu consola.

log4j.rootLogger=debug, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

Nota: Lo anterior crea un example.log en tu directorio de trabajo actual (es decir, el directorio de proyecto de Eclipse) para que el mismo log4j.properties pueda funcionar con diferentes proyectos sin sobrescribir los registros de los demás.

Referencias:
Apache log4j 1.2 - Breve introducción a log4j

Comentarios (7)

Has copiado este código de ejemplo de Aquí,¿verdad? ahora, como se puede ver allí property archivo que han definido, ¿has hecho lo mismo? si no es así, a continuación, agregue el código en su proyecto con el archivo de propiedades para log4j

Así que el contenido del archivo log4j.properties sería el siguiente:

# Define the root logger with appender file
log = /usr/home/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

hacer cambios según sus necesidades como log ruta

Comentarios (1)