SpringBoot-日志记录环境值无法打开,将被忽略

时间:2019-02-12 23:38:02

标签: java spring spring-boot logging

我正在为SpringBoot应用程序设置日志记录系统。但是我经常遇到Logging environment value 'resources/logback.xml' cannot be opened and will be ignored警告。

我的application.properties文件包含logging.config=resources/logback.xml,并且我已经将我的logback.xml文件放在resources目录下。我的SpringBoot版本是:1.1.4.RELEASE

我尝试过的事情:

  1. 我已经测试了绝对路径,但问题仍然存在,所以我认为不是导致问题的文件路径。

  2. 我更改了文件的权限,它是777,向所有人开放。因此,权限不应该成为问题。

然后我检查了具有警告的Java文件:LoggingApplicationListener.java

代码如下:

// User specified configuration
if (environment.containsProperty("logging.config")) {
    String value = environment.getProperty("logging.config");
    try {
        ResourceUtils.getURL(value).openStream().close();
        system.initialize(value);
        }
    catch (Exception ex) {
        // Swallow exception and continue
    }
    this.logger.warn("Logging environment value '" + value + "' cannot be opened and will be ignored");
}

从代码来看,这种警告是不可避免的吗?但是,配置成功初始化,尽管它说它忽略了配置。

1 个答案:

答案 0 :(得分:1)

是的。第一件事是我不确定您为什么要使用1.1.4,但除此之外。.这本质上是1.1.4中的错误。如果您移至1.1.5,您会看到他们更新了代码。

  try {
       ResourceUtils.getURL(value).openStream().close();
       system.initialize(value);
  } catch (Exception var7) {
      this.logger.warn("Logging environment value '" + value + "' cannot be opened and will be ignored");
  }

此外,我相信正确的值是“ classpath:logback.xml”。这是因为尽管您可能在本地环境中运行,但文件实际上位于某些src / main / java / resources中,但是在编译应用程序时,资源会移到类路径(或类所在的位置)中。