example - spring thymeleaf
Deshabilitando el registro de Spring, para tener registros legibles (5)
Antes de hacerlo, deberías haber tenido algún conocimiento de:
1.How to add maven dependency
2.Where to put log4j configuration file
OK, vuelve a la pregunta. La respuesta principal no funciona para spring 4.x , si está usando spring4.x, intente los siguientes 3 pasos:
eliminar
common-logging
despring-core
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.4.RELEASE</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
Sin este paso, no importa lo que pongas en el archivo de configuración log4j no funciona, porque Spring está usando
common-logging
mi hijo.
PS: En muchos módulos de Spring,spring-core
es el único módulo que depende explícitamentecommons-logging
.Añadir SLF4J y log4j
<dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.5.8</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.5.8</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.8</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency>
configure log4j.properties (También puede usar un archivo xml)
log4j.rootCategory = INFO, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p% t% c { 2}:% L -% m% n
log4j.category.org.springframework.beans.factory = INFO
Ahora, el molesto registro de depuración de primavera se va. ¡Disfruta de la codificación!
La respuesta es de spring.io doc, para el origen haga clic here
¿Cómo puedo deshabilitar los registros de Spring para tener salidas de registro que puedo leer fácilmente o que alguien más puede leer? Una respuesta a una pregunta similar en, cómo deshabilitar el registro de carga del bean spring sugerida para comentar todas las líneas que tienen substring
log4j.properties
en el file
log4j.properties
. En mi caso no hay tales líneas.
Aquí está log4j.properties
# Define the root logger with appender file
log4j.rootLogger = DEBUG, stdout
# Define the file appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# Set the name of the logs destination
log4j.appender.stdout.target=System.out
# Set the immediate flush to true (default)
log4j.appender.stdout.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.stdout.Threshold=debug
# Set the append to false, overwrite
log4j.appender.stdout.Append=false
# Define the layout for appender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{yyyy-MM-dd}:%m%n
Puede especificar el nombre del paquete requerido como se puede ver en el siguiente ejemplo:
log4j.logger.com.foo=WARN
Ahora puede ver solo los registros WARN, ERROR y FATAL en la consola.
Su registro predeterminado, para todo lo que no está especificado explícitamente, es DEBUG . Entonces, todo se registra a ese nivel (a juzgar por su configuración), básicamente, usted está inundando sus registros. No debe eliminar los registradores para org.springframework, debe agregarlos y establecer otro nivel para ellos.
log4j.logger.org.springframework=INFO
o el nivel de registro que desee.
También me enfrentaba a este mismo problema. El registro de Springframework no se eliminó incluso después de la configuración de log4j. Luego descubrí que su registro depende de los registros comunes.
commons-logging
deshabilitar commons-logging
de commons-logging
desde la dependencia en el archivo pom.xml de la aplicación web.
Incluso después de eliminar commons-logging
de pom.xml, compruebe la jerarquía de dependencias disponible en Eclipse o STS IDE. Esto ayudará a saber si de alguna manera se agregará debido a alguna otra administración de dependencia que quizás no sepamos.
Después de eliminar la dependencia, simplemente agregue log4j.logger.org.springframework=ERROR
a su configuración log4j. Esto ayudará.
Todas las respuestas dieron ejemplos con la configuración en log4j.properties, que es lo que se pidió. Tuve el mismo problema pero estaba usando la configuración en log4j2.xml y las respuestas aquí me llevaron a una solución.
En caso de que alguien esté en el mismo barco que yo, esto es lo que hice: agregué un registrador de nodo con el nombre org.springframework y el nivel WARN como se muestra en el siguiente ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.springframework" level="WARN"/>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Estoy usando Spring Boot y la exclusión que estoy haciendo es logback-classic como se muestra en el siguiente fragmento de código:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>