【问题标题】:Logback Could NOT find resource logback.xmlLogback 找不到资源 logback.xml
【发布时间】:2014-03-16 21:51:04
【问题描述】:

它正在输出到控制台。 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),但我仍然收到错误“找不到资源”。有任何想法吗?

【问题讨论】:

  • 你是如何运行代码的?您可以尝试将 \ 替换为 / 文​​件路径。有时它不起作用

标签: java xml logging logback


【解决方案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 自动配置自己,这将导致日志输出被定向到控制台。

所以在您的情况下,当您在控制台中看到输出时,它可能正在加载基本配置。您可以尝试在 class-path 中指定路径,也可以像 this 那样以编程方式进行

【讨论】:

  • 如果先检查 groovy,为什么我的日志会显示... 11:29:34,847 |-CH.qos.logback.classic.LoggerContext [default] 中的信息 - 找不到资源 [logback- test.xml] 11:29:34,847 |-CH.qos.logback.classic.LoggerContext [default] 中的信息 - 找不到资源 [logback.groovy] 不应该颠倒这个顺序吗?
  • @JGleason 编写它们的顺序可能不一定描述它们的执行内容stackoverflow.com/a/4959696/40570
  • @JGleason 顺序是正确的,首先是logback-test.xml。因此,在测试执行场景中,两者都可能在类路径中,测试设置是首选。在生产中,不应存在测试内容,而是首选logback.xml
【解决方案2】:

对我来说解决这个特定问题的一个简短而快速的解决方案是删除该 logback.xml 并 maven 更新项目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    相关资源
    最近更新 更多