使用logback理由:
1、性能提升
2、自动重新加载配置文件
3、自动去除旧的日志文件 (TimeBasedRollingPolicy)
配置:
1、pom.xml添加依赖(logback-core-1.1.2.jar)
1 <dependency> 2 <groupId>ch.qos.logback</groupId> 3 <artifactId>logback-classic</artifactId> 4 <version>1.0.6</version> 5 </dependency>
百度网盘:https://pan.baidu.com/s/19VGCaI9fTm5k0PR5kUWa5Q
密码:eld7
2、配置文件
说明:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <configuration 3 xmlns="http://ch.qos.logback/xml/ns/logback" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd"> 6 <property name="LOG_HOME" value="tp/log"/> 7 <!-- 输出到控制台 --> 8 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" > 9 <!-- 输出的格式 --> 10 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 11 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}: %msg%n</pattern> 12 </encoder> 13 </appender> 14 15 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 16 <!-- 配置滚动的策略 --> 17 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 18 <!-- 日志名称的格式 --> 19 <fileNamePattern>${LOG_HOME}/logback.log.%d{yyyy-MM-dd}</fileNamePattern> 20 <!-- 保存的最长时间:天数 --> 21 <MaxHistory>1</MaxHistory> 22 </rollingPolicy> 23 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 24 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}: %msg%n</pattern> 25 </encoder> 26 </appender> 27 28 <!-- 29 注意: 30 level属性也可以直接写在logger上,如: 31 <logger name="ws.log.logback.LogbackTest" additivity="false" level="INFO"> 32 <appender-ref ref="STDOUT" /> 33 </logger> 34 --> 35 <logger name="ws.log.logback.LogbackTest" additivity="false"> 36 <level value="INFO" /> 37 <appender-ref ref="STDOUT" /> 38 </logger> 39 40 <!-- 相当于logger元素,只是name值已经确定为root了 --> 41 <root level="warn"> 42 <appender-ref ref="STDOUT" /> 43 </root> 44 </configuration>
实际配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <configuration scan="true" scanPeriod="30 seconds"> 3 <!-- <property name="position.log.dir" value="../logs" /> --> 4 <property name="position.log.dir" value="D:/logs/0817" /> 5 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 6 <encoder> 7 <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger:%L] %m%n 8 </pattern> 9 </encoder> 10 </appender> <!----> 11 <!-- weather项目日志 --> 12 <appender name="position_appender" 13 class="ch.qos.logback.core.rolling.RollingFileAppender"> 14 <File>${position.log.dir}/position.log</File> 15 <encoder> 16 <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%logger:%L][%X{cguid}] 17 %m%n</pattern> 18 </encoder> 19 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 20 <fileNamePattern>${position.log.dir}/position.log.%d{yyyy-MM-dd} 21 </fileNamePattern> 22 </rollingPolicy> 23 </appender> 24 <!-- 性能监控 --> 25 <appender name="Performance_Monitoring" 26 class="ch.qos.logback.core.rolling.RollingFileAppender"> 27 <File>${position.log.dir}/monitoring.log</File> 28 <encoder> 29 <pattern>%m%n</pattern> 30 </encoder> 31 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 32 <fileNamePattern>${position.log.dir}/monitoring.log.%d{yyyy-MM-dd} 33 </fileNamePattern> 34 </rollingPolicy> 35 </appender> 36 37 <logger name="richinfo.frame" level="DEBUG" additivity="false"> 38 <appender-ref ref="CONSOLE" /> 39 </logger> 40 <logger name="com.richinfo" level="DEBUG" additivity="false"> 41 <appender-ref ref="CONSOLE" /> 42 </logger> 43 <logger name="Performance_monitoring" level="DEBUG" additivity="false"> 44 <appender-ref ref="Performance_Monitoring" /> 45 </logger> 46 47 48 <!-- <root level="debug"> 49 <appender-ref ref="CONSOLE" /> 50 </root> --> 51 </configuration>
3、代码实现
1 public class LogbackTest { 2 3 private static final Logger LOGGER = LoggerFactory.getLogger(LogbackTest.class); 4 5 public static void main(String[] args) { 6 LOGGER.trace("logback的--trace日志--输出了"); 7 LOGGER.debug("logback的--debug日志--输出了"); 8 LOGGER.info("logback的--info日志--输出了"); 9 LOGGER.warn("logback的--warn日志--输出了"); 10 LOGGER.error("logback的--error日志--输出了"); 11 } 12 13 }
自动重新加载配置文件