1.场景一:logback中的输出路径想全都指向新的目录下,但是改起来有很多地方……。
解决方案:配置一个全局变量,避免修改的时候到处都要改,这样只需要改一处哦。
<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去读
启动脚本加入 java -DUSER_HOME="/home/sebastien" JavaWeb
<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.场景三:想给日志文件每次一个相对唯一的名字。
解决办法:使用时间戳作为文件名
<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>