导航:首页 > 净水问答 > logback过滤字符

logback过滤字符

发布时间:2021-03-28 06:03:27

⑴ Slf4j + Logback 怎么过滤掉第三方包中的日志显示

其实这跟 Slf4J 通用日志框架没什么关系,单单是 Logback 的事,把 Slf4J 扯进来只因它们是对黄金组合。
我们在 log4j 中想要不显示第三方包的非常冗余的日志输出时,只要在 log4j.properties 中写上:

1

log4j.logger.org.hibernate=ERROR

这样在 hibernate 里的日志级别在 ERROR 以下的 TRACE、DEBUG、WARN 和 INFO 将不被输出,控制台会比较的干净。
Logback 的配置文件是 logback.xml,曾经在里面给 <appender> 加的 <pattern> 是:

1

<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>

logger 名显示 35 字符,类名优先显示全,类全限名超过总长度则取前面若干包名的首字母连接起来,于是产生了像下面那样的日志输出:
7937 [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton
7781 [main] DEBUG o.h.loader.entity.EntityLoader - Static select for entity
这在 Log4J 中是未曾见过的。当时还以为日志名就是 o.s.b.f 这样的东西,于是在 logback.xml 中用

1
2

<logger name="o.s.b" level="WARN"/>
<logger name="o.h" level="WARN"/>

这样的代码来进行封锁,根本就无济于事,大量的 spring、hibernate 的 DEBUG、INFO 等日志照样输出。这时惦记起 Logback 的 filter 功能来了,配置上:

01
02
03
04
05
06
07
08
09
10
11

<filter>
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression><![CDATA[
event.getThreadName().contains("Catalina")
|| event.getLoggerName().contains("o.s.b.f")
|| event.getLoggerName().contains("o.h.")
]]></expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>

也是没有效果的。想来 Logback 与 Log4J 相比不会这么差劲的,再怎么也是出自一人之手,想来思路应是一致的,还是该回到 <logger> 的配置上来。
还是 Google 威武,找到答案了:logback per-logger configuration is not working。原来像 "o.s.b.f" 和 "o.h." 这样的东西只是神马浮云,假象而已,它们实际所代表的 logger 名并未变,分别是:
org.springframework.beans.factory.support.DefaultListableBeanFactory
org.hibernate.loader.entity.EntityLoader
所以呢,在 logback.xml 中像 Log4J 一样写上

1
2

<logger name="org.hibernate" level="WARN"/>
<logger name="org.springframework" level="WARN"/>

就把 Spring 和 Hibernate 的日志输出稍加过滤了,都是 %logger{35} 中的那个 {35} 惹的祸,不过也靠它多了解了一点东西。如果只写成 %logger 话那时候当然可以很快的解决问题的。

⑵ logback如何设置打印的日志信息的最大字段长度

<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当发生滚动时 TimeBasedRollingPolicy滚动策略 根据时间来制定滚动策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<!-- local
<fileNamePattern>/Users/liyixiang/Documents/logs/xxx-xxx-${appPort}-%d{-MM-dd}.log</fileNamePattern>
-->
<!-- log.dir 在maven profile里配置 -->
<fileNamePattern>/logs/xxx-xxx-${appPort}-%d{-MM-dd}.log</fileNamePattern>
<!-- 控制保留的归档文件的最大数量 日志最大的历史 5天 -->
<maxHistory>5</maxHistory>
</rollingPolicy>
<!-- 日志格式化 -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%msg]%n</pattern>
</encoder>
<p>
</appender>
</p>

<p>
<br>

</p>

<p>

</p><pre class="brush:xml; toolbar: true; auto-links: false;">具体的pattern可以查询logback pattern like this --> </pre>
<p></p>

⑶ slf4j怎么屏蔽info和debug级别的日志

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序。

SLF4J
SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。

SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。

Logback
Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。

由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。

注意一个重要的特性,Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以从JMX控制台直接操作,无需重启应用程序。

此外,Logback的异常堆栈跟踪的信息,有助于调试。

[java] view plain print?
java.lang.NullPointerException: null
at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na]
at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]

SLF4J API用法
1. 从org.slf4j包导入Logger和LoggerFactory
[java] view plain print?
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

2. 声明日志类
[java] view plain print?
private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);

3. 使用debug、warn、info、error方法并跟踪适合的参数。
所有的方法默认都使用字符串作为输入。
[java] view plain print?
logger.info("This is sample info statement");

SLF4J结合Logback
在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……

[html] view plain print?
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.7</version>
</dependency>

SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。

SLF4J结合Log4j
在pom.xml包含下面的依赖

[html] view plain print?
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>

SLF4J结合JUL (java.util.logging)
在pom.xml包含下面的依赖

[html] view plain print?
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.2</version>
</dependency>

⑷ logback的日志在java的textarea显示中文乱码

logback的日志在java的textarea显示中文乱码可能是出现了程序上的问题,需要检查一遍

⑸ logback.xml怎么设置字符集

http://zan77552011.blog.51cto.com/5106659/1664290

解决不了,再追问

⑹ 为什么要用SLF4J+Logback 替换commons-logging+log4j

  1. SLF4J是编译时绑定到具体的日志框架,性能优于采用运行时搜寻的方式的commons-logging。

  2. SLF4J提供了更好的日志记录方式,带来下这几方面的好处:

    1、更好的可读性;

    2、不需要使用logger.isDebugEnabled()来解决日志因为字符拼接产生的性能问题。

  3. 先参考2,logback支持了更方便的自定义日志,便于后期的日志分析,

    可以将日志格式化保存到各种存储引擎中,

  4. 这里是推崇用 Logback 替代 Log4J 的十几个理由,


    大至是更快;

    好测试;

    与 SLF4J 关系紧;

    文档丰富;

    能自动加载配置文件;

    多个 JVM 写一个日志文件,或其他 I/O 错误时不影响程序执行;

    配置文件中加入条件控制;

    强大的日志过滤;

    更强的日志切分功能;

    自动压缩、删除日志文件;

    异常栈中更多的数据信息。

⑺ IDEA下使用logback控制台打印日志中文字符为乱码怎么破

打开File Encodings,方法:
windows:进入设置页。File-->Settings (快捷键:Ctrl+Alt+S),快速搜索输入encoding
mac:Intellij IDEA-->Preferences,快速搜索输入encoding
如下图所示。
2. 红框内,IDE Encoding 选择UTF-8,Project Encoding选择 GB2312(这个选项跟源码中的字符编码相关)
3. 在靠下的红框内,对于源码,在Default Encoding一栏选择GB2312,并保证该源码目录下的所有文件没有选择其他编码方式(即都使用默认的GB2312)
4.点击OK结束。

⑻ Slf4j + Logback 怎么过滤掉第三方包中的日志显示

1.自动清除法抄开放数据袭库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQLServer自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。2.手动清除法执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志:mp transaction with truncate_only mp transaction with no_log

⑼ Slf4j + Logback 怎么过滤掉第三方包中的日志显示

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。专 LogBack在运行时使用JMX帮助修改日志配属置,在生产状态下无需重启应用程序。 SLF4J SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commo...

⑽ logback.xml 怎么设置info信息显示控制台,而debug信息写日志

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
ThresholdFilter is shown below. 级别过滤,临界回点判断答

阅读全文

与logback过滤字符相关的资料

热点内容
EDI膜有电阻是什么情况 浏览:607
净水机过滤精度什么符号 浏览:806
油烟机净化器怎么分左右 浏览:854
杀鸡厂污水处理 浏览:234
电镀铜废水处理价格多少 浏览:577
开水器除垢硅磷晶 浏览:388
不锈钢锅水垢清洁小妙招 浏览:639
烧烤架净化器怎么样安装 浏览:119
公司员工报销饮水机怎么入账 浏览:274
含油废水治理价格多少 浏览:999
用什么材料清洗管道水垢 浏览:946
阜阳废水 浏览:358
001x7有弱酸性阳离子交换树脂 浏览:62
农村生活污水治理站项目施工方案 浏览:737
纯净水机反渗透膜怎么清洗 浏览:1000
五菱迷你空调滤芯多少钱 浏览:583
污水处理厂投资额度 浏览:381
毕业进污水处理厂 浏览:170
格力净水机怎么使用 浏览:637
不锈钢除菌过滤器 浏览:423