Logback 找不到资源 logback.xml

新手上路,请多包涵

它正在输出到控制台。 logger.info(“你好,世界信息。”); //工作得很好…

但是,以下代码返回“无法找到资源”错误:

 Logger logger = LoggerFactory.getLogger("framework.Utilities._Test");
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
StatusPrinter.print(lc);

我正在使用以下 XML:

 <configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>C:\Reports\logBack.log</file>
    <!-- encoders are assigned by default the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
    <encoder>
        <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
</appender>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%msg%n</pattern>
    </encoder>
</appender>

<root level="debug">
    <appender-ref ref="FILE" />
    <appender-ref ref="STDOUT" />
</root>
</configuration>

我已经将它复制到类路径中几个位置的根目录中(Windows7\Environment Variables\System Variables\Path),但我仍然收到错误“找不到资源”。有任何想法吗?

原文由 M_Tech 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 744
1 个回答
And I've copied it into the root of several locations in my classpath

logback 有一个默认的查找配置文件的方法,文档是这样的:

让我们首先讨论 logback 尝试配置自身的初始化步骤:

  1. Logback 尝试在类路径中查找名为 logback.groovy 的文件。

  2. 如果找不到这样的文件,logback 会尝试在类路径中查找名为 logback-test.xml 的文件。

  3. 如果没有找到这样的文件,它会检查类路径中的文件 logback.xml。

  4. 如果两个文件都没有找到,logback 会使用 BasicConfigurator 自动配置自己,这将导致日志输出被定向到控制台。

所以在您的情况下,当您在控制台中看到输出时,它可能正在加载基本配置。您可以尝试在类路径中指定路径或像 这样 以编程方式执行

原文由 shabby 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题