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>