Logback无法找到资源logback.xml

时间:2014-02-17 14:36:48

标签: java xml logging logback

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

1 个答案:

答案 0 :(得分:5)

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

logback有一种查找配置文件的默认方式,这是文档的用法:

  

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

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

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

  4.   
  5. 如果找不到这样的文件,它会检查类路径中的文件logback.xml。

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

  8.   

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