Logback使用环境变量和默认值

我们在开发SpringBoot 项目的时候,通过默认的 logback 输出日志,当我们需要配置日志相关参数时,通常是修改 logback.xml 或者 logback-spring.xml 文件。

在设置日志输出目录时,我们希望能够通过环境变量来获取,同时需要支持,如果没有设置对应的环境变量的时候能够给予默认值,那怎么做呢?

通常日志路径配置如下

<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_DIR}/log_debug.log</file>
     ....
</appender>

其中 LOG_DIR 就是一个变量的名称,根据 logback 官方的说明,它读取变量的优先级(寻找路径)是:

  1. local scope
  2. context scope
  3. system properties scope
  4. OS environment

参考地址: http://logback.qos.ch/manual/configuration.html#variableSubstitution

并且我们需要设置默认值,当没有指定名称变量存在的时候,我们就是用默认值

注意:logback使用的默认值方式和 spring 不一样,默认值的写法对比

  • Spring : ${LOG_DIR:/var/log/xxx}
  • Logback : ${LOG_DIR:-/var/log/xxx}

看出区别了吗?logback 的默认值需要在 : 后面增加 –

于是我们之前的配置改成如下,默认值才会起效

<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_DIR:-/var/log/xxx}/log_debug.log</file>
     ....
</appender>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇