繁体   English   中英

Logback 找不到资源 logback.xml

[英]Logback Could NOT find resource logback.xml

它适用于 output 到控制台。 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)中几个位置的根目录中,但我仍然收到错误“找不到资源”。 有任何想法吗?

And I've copied it into the root of several locations in my classpath

logback具有查找配置文件的默认方式,此处是文档的用法:

让我们开始讨论登录后尝试进行自我配置的初始化步骤:

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

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

  3. 如果找不到这样的文件,它将在类路径中检查文件logback.xml。

  4. 如果未找到任何文件,则logback会使用BasicConfigurator自动进行自身配置,这会将日志输出定向到控制台。

因此,您可能会在控制台中看到输出时,它正在加载基本配置。 您可以尝试在class-path中指定路径,也可以像这样以编程方式进行操作

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

"

对我来说,问题是由于错误地在类路径上有 2 个 slf4j-api 库而出现的。 删除其中一个就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM