Eri*_*ang 6 spring logback spring-boot
在spring-boot应用程序中,我尝试为配置默认目录logback。
通常,logback.xml我将以这种方式进行配置:
<property name="logFile.dir" value="${catalina.home:-/tmp}/logs" />
Run Code Online (Sandbox Code Playgroud)
分隔符为:-。
但是,在application.properties:
我必须这样配置:
logging.file=${catalina.home:/tmp}/logs/sportslight.log
Run Code Online (Sandbox Code Playgroud)
需要将分隔符从更改:-为:。
问题是:
logback.xml,这是正确的分隔符,:-或:?application.properties,为什么只能:起作用,是因为spring-boot在将值传递给logback之前会首先处理它吗?在logback.xml中,正确的分隔符为:-。在logback文档中有更多详细信息。
在Spring中,正确的分隔符是:因为Spring支持${my.property:defaultValue}语法。
因此,当面对用于变量替换的默认值分隔符的选择时,选择了logback作者,而选择:-了Spring作者:。
在 logback.xml 或 logback-spring.xml 中,您可以为系统属性和项目属性(或者您可以说 spring 属性)设置默认值。
1)对于系统属性,您可以简单地使用:-语法。在以下示例中,默认级别ThresholdFilter为ERROR。
<configuration>
<appender name="sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${sentryLevel:-ERROR}</level>
</filter>
</appender>
</configuration>
Run Code Online (Sandbox Code Playgroud)
您可以通过启动 java 进程来覆盖它,例如-DsentryLevel=INFO.
2)对于项目属性/spring属性,可以defaultValue在springProperty元素中设置。
<configuration>
<springProperty scope="context" name="sentryLevel" source="your.prop.path" defaultValue="ERROR"/>
<appender name="sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${sentryLevel}</level>
</filter>
</appender>
</configuration>
Run Code Online (Sandbox Code Playgroud)
您可以通过更改 application.properties 或 application.yml 来覆盖它。
your.prop.path=INFO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |