如何使用log4j禁用调试消息并仅在tomcat catalina.out文件中显示信息消息



09:54:48.977 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 完成了 bean '(内 bean(#1' 的创建实例 09:54:48.978 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#2' 的实例 09:54:49.453 [localhost-startStop-1] 调试 o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#2' 的实例 09:54:49.454 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#3' 的实例 09:54:49.696 [localhost-startStop-1] 调试 o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#3' 的实例 09:54:49.696 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#4' 的实例 09:54:50.054 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#4' 的实例 09:54:50.055 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#5' 的实例 09:54:50.417 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#5' 的实例 09:54:50.418 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#6' 的实例 09:54:51.135 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#6' 的实例 09:54:51.136 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#7' 的实例 09:54:51.853 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#7' 的实例 09:54:51.853 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean '(inner bean(#8' 的实例 09:54:54.716 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean '(inner bean(#8' 的实例 09:54:54.831 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 在名为"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0"的bean上调用afterPropertiesSet(( 09:54:55.370 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 已完成创建 bean 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0' 的实例 09:54:55.370 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 返回单例 bean 'org.springframework.web.servlet.handler.MappedInterceptor#0' 的缓存实例 09:54:55.370 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建单例 bean 的共享实例 'org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0' 09:54:55.370 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 创建 bean 'org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0' 的实例 09:54:55.487 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - 急切地缓存 bean 'org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0' 以允许解析潜在的循环引用 10:06:27.851 [http-nio-8081-exec-10] DEBUG o.s.w.s.m.m.a.HttpEntityMethodProcessor - Written [{"data":{"code":success,"message":{"title":"Title"}}

要过滤掉某些包并将其他包保留在调试中,请添加记录器。假设您正在使用 logback 和 spring,在您的 logback-spring 中.xml:

...
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%marker - ${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE"/>
</root>
<logger name="org.apache.kafka.clients" level="INFO"/>
<logger name="org.springframework.beans" level="INFO"/>
<logger name="org.springframework.core.env" level="INFO"/>
<logger name="org.springframework.jdbc" level="INFO"/>
...

将摆脱很多春天的噪音。选择要更改级别的包。

有趣的是,可以使用日志中显示的简短形式,但要注意,记录器只会完全匹配字符串。

<logger name="o.e.j.util" level="INFO"/>

将更改o.e.j.util的日志记录级别以及使用该字符串作为完整类命名空间的开头记录的任何类为 INFO,但它不会更改org.eclipse.jetty.utilo.e.jetty.util的日志记录级别,因为它们本质上是不同的字符串。如果要更改org.eclipse.jetty.util包中所有类的日志记录级别,则需要使用完整的包名称:

<logger name="org.eclipse.jetty.util" level="INFO"/>

希望有意义吗?

最新更新