logback解決一些日誌文件名的問題。

1.場景一:logback中的輸出路徑想全都指向新的目錄下,可是改起來有不少地方……。 java

  解決方案:配置一個全局變量,避免修改的時候處處都要改,這樣只須要改一處哦。 web

  

<configuration>
    <property name="USER_HOME" value="/home/sebastien" />
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/myApp.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILEBACK" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/myApp_bak.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="FILE" />
<appender-ref ref="FILEBACK" />
    </root>
</configuration>
2.場景二:想將一個web項目部署在同一臺機器上的兩個web容器中,可是同時日誌又想單獨輸出。

解決辦法:給web容器啓動腳本一個不一樣的參數,設置輸出目錄,讓logback去讀 app

啓動腳本加入 java -DUSER_HOME="/home/sebastien" JavaWeb
spa

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${USER_HOME}/myApp.log</file>
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="FILE" />
  </root>
</configuration>

3.場景三:想給日誌文件每次一個相對惟一的名字。 debug

解決辦法:使用時間戳做爲文件名 日誌

<configuration>
  <!-- Insert the current time formatted as "yyyyMMdd'T'HHmmss" under
       the key "bySecond" into the logger context. This value will be
       available to all subsequent configuration elements. -->
  <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <!-- use the previously created timestamp to create a uniquely
         named log file -->
    <file>log-${bySecond}.txt</file>
    <encoder>
      <pattern>%logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
相關文章
相關標籤/搜索