中台化改造实践--Logback动态配置 Appender (二)
发布日期:2021-06-23 17:48:06
浏览次数:2
分类:技术文章
本文共 2094 字,大约阅读时间需要 6 分钟。
一 背景
在程序运行的时候,有的时候需要动态修改 Logger 的级别,增加、删除、修改 Logger 的 Appender, 并通过特定的 appender 采集打印指定的日志并上传到阿里云。
二 代码
Java代码如下:
import java.io.IOException;import java.nio.charset.Charset;import org.slf4j.LoggerFactory;import org.testng.annotations.Test;import ch.qos.logback.classic.Level;import ch.qos.logback.classic.Logger;import ch.qos.logback.classic.LoggerContext;import ch.qos.logback.classic.encoder.PatternLayoutEncoder;import ch.qos.logback.core.FileAppender;/** * Log修改管理 * * @author bash * @version V1.0 * @since 2016-03-21 10:53 */public class LoggerDynamicConfig { /** * 日志记录Logger */ private static final Logger LOG = (Logger) LoggerFactory.getLogger(LoggerDynamicConfig.class); @Test public void addAppender() throws IOException { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); /*这里配置encodeer。*/ PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setCharset(Charset.forName("UTF-8")); encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); encoder.setImmediateFlush(true); encoder.setContext(lc); /*这里启配置appender*/ FileAppender appender = new FileAppender(); appender.setEncoder(encoder); appender.setFile("/home/bash/workspace/temp/test.log"); appender.setName("TestFile"); appender.setAppend(false); appender.setContext(lc); /*这里启动encoder和appender。*/ encoder.start(); appender.start(); LOG.addAppender(appender); LOG.info("这里时一条所有appender都可以输出的数据。"); /*修改Logger级别*/ LOG.setLevel(Level.ERROR); LOG.info("这里的数据所有appender都不会输出。"); LOG.error("这里时一条所有appender都可以输出的数据。"); /*删除appender*/ LOG.detachAppender("TestFile"); LOG.error("这条数据不会在FileAppender中输出。"); }}
logback.xml
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
三、注意事项
-
官网描述
日志加载顺序:
根据官网的描述可以得到这样的信息:logback.xml加载早于application.yml。
转载地址:https://blog.csdn.net/u012921921/article/details/112605096 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 12时37分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Netty与网络协议资料整理
2019-04-30
Golang相关资源整理
2019-04-30
设置Golang的开发环境
2019-04-30
对HTTP/2的部分理解
2019-04-30
Golang 逃逸分析
2019-04-30
golang实现大数据量文件的排序
2019-04-30
golang中的time包
2019-04-30
golang fmt包中的占位符
2019-04-30
Docker下使用Redis
2019-04-30
Redis的主从和集群设置
2019-04-30
对Redis Cluster的理解
2019-04-30
清华师哥丢了个在Github下载量50万+的项目给我,让(附源码下载地址)
2019-04-30
The MASM32 SDK version 10 发布了!
2019-04-30
发布软件:TreeInfo(分层信息管理器)
2019-04-30
c++点的距离
2019-04-30
c++实现彩色炫酷(?)画面
2019-04-30
c++马拦过河卒
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
1997年世界黑客大赛获奖作品
2019-04-30
论DEV-C++怎样才能做窗口
2019-04-30