Nuestros mejores programadores han agotado sus provisiones de café, por su búsqueda noche y día por la respuesta, hasta que Xavier halló la contestación en Gogs y ahora la compartimos contigo.
Solución:
Su definición de registrador raíz está un poco confusa. Consulte la documentación de log4j.
Este es un archivo de propiedades estándar de Java, lo que significa que las líneas se tratan como key= pares de valores. tu segundo log4j.rootLogger
está sobrescribiendo la primera, lo que explica por qué no ves nada en la console
anexador
Necesitas fusionar tus dos rootLogger
definiciones en una. Parece que estás tratando de tener DEBUG
los mensajes van a la consola y INFO
mensajes al archivo. El registrador raíz solo puede tener uno nivel, por lo que necesita cambiar su configuración para que los appenders tengan niveles apropiados.
Si bien no he verificado que esto sea correcto, supongo que se verá así:
log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
Tenga en cuenta que también tiene un error de mayúsculas y minúsculas: tiene la consola en minúsculas en un lugar y en MAYÚSCULAS en otro.
Su archivo log4j debería verse como a continuación, lea los comentarios.
# Define the types of logger and level of logging
log4j.rootLogger = DEBUG,console, FILE
# Define the File appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Define Console Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
# Define the layout for console appender. If you do not
# define it, you will get an error
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# Set the name of the file
log4j.appender.FILE.File=log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Esto funciona bien para la consola en modo de depuración.
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %-5p - %m%n
Al final de todo puedes encontrar las explicaciones de otros sys admins, tú igualmente tienes la habilidad dejar el tuyo si te gusta.