现在很多应用都是基于容器部署,且可能有多个实例,Spring Boot项目+logback生成日志时,为了让每个实例生成的日志在不同目录下,可以在logback-spring.xml中加上这样一个配置:
<springProperty scope="context" name="instanceIp" source="spring.cloud.client.ip-address" />
需要引入springcloud相关依赖,然后,在配置日志路径的时候这个配置:
<property name="LOG_HOME" value="./log/appName/${instanceIp}/" />
<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/test.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/test.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
假设两个实例的ip分别为:192.168.0.1,192.168.0.2,那么生成的日志路径为: /log/appName/192.168.0.1/test.log , /log/appName/192.168.0.2/test.log