它正在输出到控制台。 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),但我仍然收到错误'找不到资源'。有任何想法吗?
答案 0 :(得分:5)
And I've copied it into the root of several locations in my classpath
logback有一种查找配置文件的默认方式,这是文档的用法:
让我们首先讨论尝试配置自身后面的logback的初始化步骤:
Logback尝试在类路径中查找名为logback.groovy的文件。
如果未找到此类文件,则logback会尝试在类路径中查找名为logback-test.xml的文件。
如果找不到这样的文件,它会检查类路径中的文件logback.xml。
- 醇>
如果找不到任何文件,logback会自动使用BasicConfigurator自行配置,这将导致日志输出定向到控制台。
所以可能在您的情况下,当您在控制台中看到输出时,它正在加载基本配置。您可以尝试在类路径中指定路径,或者以编程方式执行this