通过LOGBACK实现每个类、包或自定义级别
项实现LOGBACK对每个包或者类或者通过自定义级别的方式实现自定义输出的日志进入制定的文件。查阅了很多资料,都没有找到行之有效的解决方案,直到看到了这篇文章http://www.360doc.com/content/14/1015/18/8072791_417222724.shtml 找到了解决方案。
解决方案大体思路:正常来讲配置好LOGBACK后,在代码页面使用private static Logger logger = LoggerFactory.getLogger(*.class);的方式就可以直接输出日志
logger.trace("======trace");
logger.debug("======debug");
logger.warn("======warn");
logger.error("======error");
但是!输出了很多我们不想要的无用信息,从海量的日志里找我们的输出如大海捞针。
自定义日志级别方式如下:
1、代码文件:Logger monitorLogger = LoggerFactory.getLogger("monitor"); //在声明实例时创建自定义级别标签,MOBITOR就是自定义的标签。
2、代码文件:输出日志采用这样的方式monitorLogger.info("======info");
3、配置文件:声明LOGGER的处理节点
<logger name="monitor" additivity="false"> <appender-ref ref="file—monitor"/> </logger>
<!-- 时间滚动输出 level为 monitor 日志 --> <appender name="file—monitor" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>D:/logs/monitor.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder> <pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern> </encoder> </appender>
保持JAVA代码实例标签MONITOR和配置文件中的LOGGER NAME属性一致即可。
通过如上代码的实现,就可以看到我们输出的INFO文件是独立的 并且没有系统的任何信息 都是自己指定输出的内容。
---------
额外话题:今天为了解决这个问题查阅了很多资料,分享给其他人。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)