日志常用到的jar包,给出maven依赖,单单是logback的话,添加第一个logback-classic这个就可以,剩余几个是其他日志类型可能会用到的jar包,选择添加即可:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
下面给出一个常用的配置:可以作为一个模板:
<?xml version="1.0" encoding="utf-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义参数常量:下面会用到 -->
<property name="log.level" value="debug"/> <!--日志级别-->
<property name="log.maxHistory" value="30"/> <!--最长保存日期-->
<property name="log.filePath" value="G:/JAVA_HOME/logger/schoolshop/logs/webapps"/> <!--日志保存路径-->
<!--日志输出格式: 日期 执行线程 (空5格)日志级别 日志位置 日志内容 换行 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
<!--控制台设置 -->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<!--日志格式-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!--定义DEBUG -->
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--日志追加-->
<!--文件路径 -->
<file>${log.filePath}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件名称 -->
<fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<!--文件最大保存天数 -->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!--日志格式-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!--过滤只接受DEBUG级别日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--INFO -->
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件路径 -->
<file>${log.filePath}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件名称 -->
<fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<!--文件最大保存历史时间 -->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!--日志格式-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!--过滤只接受INFO级别日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--ERROR -->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件路径 -->
<file>${log.filePath}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件名称 -->
<fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<!--文件最大保存历史数量 -->
<maxHistory>${log.maxHistory}</maxHistory>
</rollingPolicy>
<!--日志格式-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!--过滤只接受ERROR级别日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<logger name="com.scnu.o2o" level="${log.level}" additivity="true">
<!--additivity="true" 注解作用:将root中的appender-ref 自动添加至该项目下,因此自己记录的日志也会打印输出在控制台-->
<appender-ref ref="debugAppender"/>
<appender-ref ref="infoAppender"/>
<appender-ref ref="errorAppender"/>
</logger>
<root level="info">
<appender-ref ref="consoleAppender"/>
</root>
</configuration>
注意最后logger和root节点,以及additivity属性。
推荐两篇关于logback的配置博客:
1、https://www.cnblogs.com/reason-cai/p/6763108.html
2、https://www.cnblogs.com/winner-0715/p/6105519.html
3、https://www.cnblogs.com/warking/p/5710303.html |