logback基本配置
如果使用的是springboot,默認是帶有logback依賴的,在resource下直接添加配置文件 logback-spring.xml
如果是spring需要自己引入依賴,配置文件爲logback.xml:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<!--logback-->
我自己常用的配置大概如下,alarmLogAppender爲根據業務自定義的appender,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="/export/Logs/log-test"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%date] [%p] [%logger] [%M] [%t] [%line] [%m]%n</pattern>
</encoder>
</appender>
<appender name="LogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/all.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/all.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>[%date] [%p] [%logger] [%M] [%t] [%line] [%m]%n</pattern>
</encoder>
</appender>
<appender name="alarmLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/main/alarm.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/main/alarm.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>[%date] [%p] [%logger] [%M] [%t] [%line] [%m]%n</pattern>
</encoder>
</appender>
<logger name="com.hk.goods.alarm" level="INFO" additivity="false">
<appender-ref ref="alarmLogAppender"/>
</logger>
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="LogFile"/>
</root>
</configuration>
說明:
如下配置爲了將所有報警任務的日誌輸出到一個單獨的文件而自定義的appender和logger,additivity="false"說明日誌只在這個文件打印,不會再root標籤裏的所有日誌裏面打印,即不會向上傳遞
<appender name="alarmLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/main/alarm.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/main/alarm.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>[%date] [%p] [%logger] [%M] [%t] [%line] [%m]%n</pattern>
</encoder>
</appender>
<logger name="com.hk.goods.alarm" level="INFO" additivity="false">
<appender-ref ref="alarmLogAppender"/>
</logger>
logger的name可以配置爲包名或類名,其實這個名字和我們使用的時候傳入的類有關
Logger logger = LoggerFactory.getLogger(TestLog.class);
即表示有一個logger輸出器,名字爲com.hk.goods.alarm.TestLog,使用該logger輸出的日誌都會打印到alarm.log