以编程方式在回发中添加附加器

来源:爱站网时间:2021-09-16编辑:网友分享
我正在尝试在登录中动态添加追加器。这是我的代码。 LoggerContext lc =(LoggerContext)LoggerFactory.getILoggerFactory(); PatternLayoutEncoder ple = new PatternLayoutEncoder(); ...

问题描述


我正在尝试在登录中动态添加追加器。这是我的代码。

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
ple.setContext(lc);
ple.start();
FileAppender fileAppender = new FileAppender();
String logFile = "new.log";
fileAppender.setFile(logFile);
fileAppender.setEncoder(ple);
fileAppender.setContext(lc);
fileAppender.start();

ch.qos.logback.classic.Logger logbackLogger =
                (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(ModuleMessageHandler.class);
logbackLogger.addAppender(fileAppender);
logbackLogger.setLevel(Level.DEBUG);
logbackLogger.setAdditive(false);

可以,但是仅适用于添加了追加程序的特定记录器。有没有办法使它适用于应用程序中的所有记录器?我正在寻找一种动态添加和删除附加程序的方法。

解决方法:


您的代码的这一部分:

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
ple.setContext(lc);
ple.start();
FileAppender fileAppender = new FileAppender();
String logFile = "new.log";
fileAppender.setFile(logFile);
fileAppender.setEncoder(ple);
fileAppender.setContext(lc);
fileAppender.start();

...创建并启动文件追加器。

您的代码的这一部分...

ch.qos.logback.classic.Logger logbackLogger =
                (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(ModuleMessageHandler.class);
logbackLogger.addAppender(fileAppender);
logbackLogger.setLevel(Level.DEBUG);
logbackLogger.setAdditive(false);

...将文件追加器与ModuleMessageHandler的记录器实例相关联。

相反,如果您希望文件追加器与应用程序中的all记录器实例相关联,那么(如@ BillO'Neil)建议您必须将文件追加器与root logger相关联:] >

ch.qos.logback.classic.Logger logbackLogger =
                (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logbackLogger.addAppender(fileAppender);

上一篇:如何在一个列中插入多个值?

下一篇:电话处于省电模式时可以信任MQTT

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载