【发布时间】:2019-08-16 08:04:05
【问题描述】:
我正在创建一个 Java Spring Boot 2.1 应用程序,它使用 Maven 添加 spring-boot-starter 依赖项。正如the documentation 中所写,这将启用默认的 logback 配置。这个配置可以在in this repository免费找到,包含的语法对我来说有点难以理解。
1.神秘的冲刺
我知道 Spring 属性是使用以下语法设置的
${property.name:someDefaultValue}
但是,在用于 logback 配置的 xml 文件中,冒号后面总是有一个破折号。为什么是这样?例如:
2。不断变化的属性名称
我也不清楚所有这些属性名称的来源。在文档中提到用以下属性填充我们的 application.properties 或 application.yml:
logging.file = /app/logs/mylog.log
名称为 logging.file 的属性如何以及在何处转换为 logback xml 文件中使用的名称为 LOG_FILE 的属性?
3.缺失的属性
具体来说,该属性在 application.properties(或 .yml)中没有等效的属性来配置它
${LOG_FILE_TOTAL_SIZE_CAP:-0}
如果我想将此属性更改为其他值,我必须以某种方式设置 LOG_FILE_TOTAL_SIZE_CAP 属性。如何在仍然使用 spring boot 提供的原始默认 logback 配置 xml 的同时做到这一点?
4.我们被默认的附加程序卡住了
logback xml 文件中唯一的 appender 逻辑是:
而 application.properties 不允许改变这一点。尽管我必须承认这是非常有用的默认设置,但有时它不起作用。为了对 appender 或策略进行一个小的调整,必须完全覆盖整个 logback xml 配置似乎有点过头了。如果我要在我的类路径上提供多个自定义 logback/xml 配置文件,logback 是否会“合并”它们,或者只是选择一个而忽略其他的?覆盖/合并如何工作,哪个 xml '获胜'?
【问题讨论】:
标签: java spring spring-boot logging logback