java - Spring Boot - 日志记录环境值无法打开并将被忽略

标签 java spring spring-boot logging

我正在为我的 SpringBoot 应用程序设置日志系统。但我经常遇到日志环境值'resources/logback.xml'无法打开并将被忽略警告。

我的 application.properties 文件包含 logging.config=resources/logback.xml 并且我已经将我的 logback.xml 文件放在 资源目录。我的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.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 中,但在编译应用程序时,资源会移至类路径(或您的类所在的位置)。

关于java - Spring Boot - 日志记录环境值无法打开并将被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660346/

相关文章:

java - 在 java readLine() 中读取响应结束

java - 使用 RTC 源代码管理获取已更改文件的文件名、位置和作者

java - 有没有办法在 Spring RestTemplate DELETE 调用中传递 header 信息

java - 如何从系统变量设置 Spring 配置文件?

java - 如何将 java bean 对象存储为 DB 列中的 clob(使用 Hibernate)

java - 如何使用 hibernate 和 web 服务持久保存具有两个父级的实体?

java - 如何使用 Spring RestTemplate 表示为 JSON 的查询参数?

java - 为什么SpringApplication通过配置加载ApplicationContextInitializer?

spring-boot - 如何配置 Spring boot Web 应用程序服务器来服务器外部内容并使用默认资源目录?

spring-boot - 如何将 Spring Boot Logo 更改为 Nyan Cat?