日志返回 找不到资源日志.xml

2022-09-04 22:22:36

它正在努力输出到控制台。logger.info(“Hello world 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\环境变量\系统变量\路径)的根目录中,但我仍然收到错误“找不到资源”。有什么想法吗?


答案 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. 如果未找到此类文件,它将检查类路径中的文件日志.xml。

  4. 如果找不到任何文件,logback 将使用 BasicConfigurator 自动配置自身,这将导致日志记录输出定向到控制台。

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


答案 2

对于这个特定问题,一个简短而快速的解决方案是删除该日志.xml并更新项目


推荐