form example spring logging log4j stdout

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:

  1. eliminar common-logging de spring-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ícitamente commons-logging .

  2. 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>

  3. 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>