SLF4J - Logback:如何在运行时配置记录器? [英] SLF4J - Logback: How to configure loggers in runtime?

查看:156
本文介绍了SLF4J - Logback:如何在运行时配置记录器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用LogBack和我们的项目,我想根据一些数据库值配置记录器,即如果某个DB值设置为true,那么logger应该使用文件和DB appender,如果它是false,那么logger必须使用只有DB appender,

we are using LogBack with our project, I want to configure logger according to some Data Base values, i.e If some DB value is set to true, then logger should use both file and DB appenders, if it's false so logger must use only DB appender,

我还想保留使用静态最终记录器,所以每次调用记录器时我都不会创建新的实例,

I also want to preserve using static final loggers, so I won't create a new instance each time logger is called,

所以我怎么能这样做?

问候,

推荐答案

您应按照此示例中所述以编程方式配置Logback

public class Main {

   public static void main(String[] args) {
     Logger logger = (Logger) LoggerFactory.getLogger("abc.xyz");

     LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
     FileAppender<LoggingEvent> fileAppender =
                       (FileAppender<LoggingEvent>) logger.getAppender("file");
     if(fileAppender != null) {
       fileAppender.stop();
       fileAppender.setFile("new.log");
       PatternLayout pl = new PatternLayout();
       pl.setPattern("%d %5p %t [%c:%L] %m%n)");
       pl.setContext(lc);
       pl.start();
       fileAppender.setLayout(pl);
       fileAppender.setContext(lc);
       fileAppender.start();
     }
     ... etc    
   }
}

这篇关于SLF4J - Logback:如何在运行时配置记录器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆