了解Spring Boot 2的默认logback配置

问题描述 投票:0回答:1

我正在创建一个Java Spring Boot 2.1应用程序,它使用Maven添加spring-boot-starter依赖项。正如在the documentation中所写,这启用了默认的logback配置。这个配置可以自由地找到in this repository并包含有点难以理解的语法。

1.神秘的冲刺

我知道使用以下语法设置Spring属性

$ {property.name:someDefaultValue}

但是,在logback配置的xml文件中,冒号后面总是有一个短划线。为什么是这样?例如:

<property name =“LOG_FILE”value =“$ {LOG_FILE: - $ {LOG_PATH: - $ {LOG_TEMP: - $ {java.io.tmpdir: - / tmp}}} / spring.log} />”

2.更改属性名称

我也不清楚所有这些属性名称来自何处。在文档中提到了使用以下属性填充application.properties或application.yml:

logging.file = /app/logs/mylog.log

如何以及在何处将名称为logging.file的属性转换为名称为LOG_FILE的属性,如logback xml文件中所使用的那样?

3.遗失的财产

具体而言,此属性在application.properties(或.yml)中没有用于配置它的等效属性

<totalSizeCap> $ {LOG_FILE_TOTAL_SIZE_CAP:-0} </ totalSizeCap>

如果我想将此属性更改为其他值,我必须以某种方式设置LOG_FILE_TOTAL_SIZE_CAP属性。如何在使用spring boot提供的原始默认logback配置xml的同时执行此操作?

我们坚持使用默认的appender

logback xml文件中唯一的appender逻辑是:

<root level =“INFO”>

<appender-ref ref =“CONSOLE”/>

<appender-ref ref =“FILE”/>

</根>

而application.properties无法改变这一点。虽然我必须承认这是非常有用的默认值,但它有时不起作用。对于一个小的调整到一个appender或策略,必须完全覆盖整个logback xml配置似乎有些过分。如果我要在我的类路径上提供多个自定义logback / xml配置文件,会记录“合并”它们,还是只选择一个而忽略其他文件?如何覆盖/合并工作,xml'赢'?

java spring spring-boot logging logback
1个回答
1
投票

1.神秘的冲刺

对于logback:https://logback.qos.ch/manual/configuration.html。特别:

在某些情况下,如果变量未声明或其值为null,则可能需要具有默认值。与在Bash shell中一样,可以使用“: - ”运算符指定默认值。例如,假设未定义名为aName的变量,“$ {aName:-golden}”将被解释为“golden”。

2.更改属性名称

这应该有助于映射:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html。也在org.springframework.boot.logging.LoggingSystemProperties周围捅。

3.遗失的财产

我同意你的评估!也许用LoggingSystemProperties进行一些挖掘可能会有所帮助(在apply()方法中?)。但更有可能通过提供自己的logback.xml来解决。

我们坚持使用默认的appender

这也是事实。见https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html的83.1。实际上,我曾经使用的每个项目都提供了自己的log4j.xml,logback.xml等。

© www.soinside.com 2019 - 2024. All rights reserved.