简介
logback,slf4j(与log4j同一个作者,采取了log4j的优点并且比log4j更加完美)的实现。
配置文件
logback.xml 该配置文件中已经配置好了日志保留时长以及周期打包保存,使用的时候只需要调整一下核心参数即可。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextName>socketand</contextName>
<property name="LOG_PATH" value="powerservice-satisfaction" />
<!--设置系统日志目录 -->
<property name="APPDIR" value="satisfaction" />
<property name="SERVICENAME" value="powerservice-satisfaction" />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志输出格式: %d表示日期时间, %thread表示线程名, %-5level:级别从左显示5个字符宽度 %logger{50}
表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息, %n是换行符 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread]%-5level %logger{50}-%msg%n
</pattern>
</layout>
</appender>
<!-- 日志记录器,日期滚动记录 -->
<appender name="FILEERROR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/${APPDIR}/${SERVICENAME}_error.log</file>
<!-- 日志记录器的滚动策略,按日期,按大小记录 大小:1MB,超过1MB的话 日志会自动归档,归档地址则就是fileNamePattern属性值所对应的值 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${APPDIR}/error/${SERVICENAME}-error.log.%d{yyyy-MM-dd}.%i.gz
</fileNamePattern>
<!--保留时长-->
<maxHistory>1</maxHistory>
<!--日志大小-->
<maxFileSize>1MB</maxFileSize>
<!--总大小大小-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L -
%msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件只记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 日志输出格式: -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [ %thread ]-[ %-5level ]
[%logger{50} : %line ] - %msg%n</pattern>
</layout>
</appender>
<!-- 日志记录器,日期滚动记录 -->
<appender name="FILEWARN"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/${APPDIR}/${SERVICENAME}_debug.log</file>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${APPDIR}/debug/${SERVICENAME}-debug-%d{yyyy-MM-dd}.%i.gz
</fileNamePattern>
<maxHistory>1</maxHistory>
<maxFileSize>20MB</maxFileSize>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L -
%msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 日志输出格式: -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [ %thread ]-[ %-5level ]
[%logger{50} : %line ] - %msg%n</pattern>
</layout>
</appender>
<!-- 日志记录器,日期滚动记录 -->
<appender name="FILEINFO"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/${APPDIR}/${SERVICENAME}_info.log</file>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${APPDIR}/info/${SERVICENAME}-info-%d{yyyy-MM-dd}.%i.gz
</fileNamePattern>
<maxHistory>1</maxHistory>
<maxFileSize>20MB</maxFileSize>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L -
%msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 日志输出格式: -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [ %thread ]-[ %-5level ]
[%logger{50} : %line ] - %msg%n</pattern>
</layout>
</appender>
<!--引用-->
<root level="INFO">
<appender-ref ref="stdout" />
<appender-ref ref="FILEERROR" />
<appender-ref ref="FILEWARN" />
<appender-ref ref="FILEINFO" />
</root>
</configuration>
LoggerSl4j.java
public class LoggerSl4j {
/**
* 获取日志对象
*
* @return
*/
public static Logger getSpringBootLogger() {
Logger log = LoggerFactory.getLogger(LoggerSl4j.class);
return log;
}
}