使用logback屏蔽一些包的日志
在logback.xml中加上该配置,包名如:com.xxx
补充知识:logback,利用java包名对包内所有类定义输出形式
目的
将javapackage中的所有类定义一个输出logger,定义它的级别,这样就不用每个类都配置。
测试
配置文件
%d{MM/dd/yyyyHH:mm:ss}%-5level[%thread%X{sourceThread}]%logger{24}-%msg%n /var/log/admin-manage/log.log /var/log/admin-manage/log.%d{yyyy-MM-dd}.log.gz 7 %d{MM/dd/yyyyHH:mm:ss}%-5level${version}[%thread]%logger{16}-%msg%n
代码
packagecom.netease.haitao.LogbackTest; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory; /** *${todo} * *@param:$$params$ *@return$returns$ *@date$date$$time$ */ publicclassLogBackTestOne{ privatestaticfinalLoggerlogger=LoggerFactory.getLogger(LogBackTestOne.class); publicstaticvoidmain(String[]arg){ //print("test1"); //print("test2"); //print("test3"); //print("test4"); print("test4.test5"); } publicstaticvoidprint(Stringname){ //Loggerlogger=LoggerFactory.getLogger(name); logger.debug("debug"); logger.info("info"); logger.warn("warn"); logger.error("error"); } }
输出结果
05/03/201809:28:38WARN[main]c.n.h.L.LogBackTestOne-warn
05/03/201809:28:38WARN[main]c.n.h.L.LogBackTestOne-warn
05/03/201809:28:38ERROR[main]c.n.h.L.LogBackTestOne-error
05/03/201809:28:38ERROR[main]c.n.h.L.LogBackTestOne-error
大家可以注意到,这里只输出warn和error级别的信息,这是因为配置文件中“loggername=“com.netease.haitao.LogbackTest”level=“warn””中定义了日志级别,并且有root作为一个根级别的日志输出节点。
如果我们把name换成其他名字,修改为“loggername=“Test5”level=“warn””,我们看下结果:
05/03/201809:24:04DEBUG[main]c.n.h.L.LogBackTestOne-debug
05/03/201809:24:04INFO[main]c.n.h.L.LogBackTestOne-info
05/03/201809:24:04WARN[main]c.n.h.L.LogBackTestOne-warn
05/03/201809:24:04ERROR[main]c.n.h.L.LogBackTestOne-error
上述结果就是修改后的结果,从这里看出,所有的日志信息都从root这个父节点输出了,因为root的级别是debug,所有的日志信息都打印出来了,这样说明我们之前配置的java包的测试是成功的,有结果的。
如果项目是基于springboot框架的话,不需要额外引用相关依赖,直接配置logback.xml就可以直接用。
结论
上述测试证明:logger的name可以配置成java包名,这样可以对包内的所有java类都起作用。帮助简化配置。
以上这篇使用logback屏蔽一些包的日志就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。