什么时候使用JoranConfigurator?

时间:2017-12-09 08:50:04

标签: logback

有人可以向我解释我们何时应该使用JoranConfigurtor? 我在目录中存在logback.xml。我想知道这段代码中发生了什么?

没有LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();初始化上下文?那么乔兰正在做什么?

 private static void configureLoggerContext(String logbackConfigFileUrl) {
    File file = new File(logbackConfigFileUrl);
    LoggerListener loggerListener = new LoggerListener();
    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
    loggerContext.reset();
    loggerContext.addListener(loggerListener);
    JoranConfigurator configurator = new JoranConfigurator();
    configurator.setContext(loggerContext);
    try {
        configurator.doConfigure(file);
    } catch (JoranException je) {
        throw new RuntimeException(je.getMessage());
    }
}

2 个答案:

答案 0 :(得分:1)

Joran a只是Logback依赖的配置库。 https://logback.qos.ch/manual/configuration.html#joranDirectly

答案 1 :(得分:0)

当您的应用程序需要显式配置时,使用JoranConfigurator来配置日志记录,而不是仅在servlet环境中使用web.xml之类的东西(将在后台使用配置程序)。

例如,如果您创建一个简单的桌面应用程序并且想要使用本地logback.xml文件进行配置,则可以使用配置程序加载它

JoranConfigurator configurator = new JoranConfigurator();
        configurator.setContext(context);
        configurator.doConfigure(new File("path/to/logback.xml"));

logger上下文只是Logback的上下文,它包含了logback组件的实现,它允许您为类创建Logger。调用.doConfigure时,将根据logback.xml内的内容配置上下文。

来自LoggerContext doc:

  

LoggerContext实现了充当Logger实例制造源的ILoggerFactory。