首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使logback识别logback.xml?

如何使logback识别logback.xml?
EN

Stack Overflow用户
提问于 2017-11-21 13:39:01
回答 1查看 925关注 0票数 0

目前,当我执行我的代码时,它不会创建任何日志文件。logback.xml配置得很好,但是我看不出有一种方法可以配置在哪里找到xml文件

EN

回答 1

Stack Overflow用户

发布于 2017-11-21 17:14:39

根据关于配置的“登录手册”一章

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

  1. Logback试图在类路径中找到一个名为logback-test.xml的文件。
  2. 如果没有找到这样的文件,logback将尝试在类路径中找到一个名为logback.groovy的文件。
  3. 如果没有找到这样的文件,它将检查类路径中的文件logback.xml。
  4. 如果没有找到这样的文件,则使用服务提供者加载工具(在JDK1.6中引入)通过在类路径中查找文件META-INF\services\ch.qos.logback.classic.spi.Configurator来解析com.qos.logback.classic.spi.Configurator接口的实现。它的内容应该指定所需Configurator实现的完全限定类名。
  5. 如果上述任何操作都没有成功,则logback将使用BasicConfigurator自动配置自己,这将导致日志输出被定向到控制台。

它试图告诉您的标准方法是让logback.xml处于“正常”运行的类路径中,并在类路径中有一个logback-test.xml来描述在运行自动测试时希望如何记录。(例如,您可能希望登录到常规应用程序中的文件,但是让您的自动化单元测试只需登录到控制台。)将文件放入类路径的确切过程取决于您正在使用的构建系统。例如,在流行的Maven构建系统中使用默认设置,您可以将logback.xml放在src/main/resources中,并(如果需要的话)将logback-test.xml放在src/test/resources中。如果您在这一步中遇到问题,您可能需要搜索或问另一个问题,并提供有关您正在使用的构建工具链的更多详细信息。也一定要读"什么是类路径?

另一种方法也列在“登录手册”中:

您可以使用名为"logback.configurationFile“的系统属性指定默认配置文件的位置。此属性的值可以是URL、类路径上的资源或应用程序外部文件的路径。 java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1 注意,文件扩展名必须是".xml“或".groovy”。

这种情况并不常见,但有时如果您需要在具有特定日志记录配置的特定环境中运行,或者运行某种自动测试,将输出定向到与常规测试不同的位置,那么这样直接配置路径就可以派上用场了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47414526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档