简单介绍下logback:logback是slf4j的实现,两者是同一个作者也是目前最流行的日志框架之一。
在springboot下使用无需额外引用jar包。
如果你只是简单使用日志,可以在application.properties或者bootstrap.yml直接进行配置:
logging.level.root=info
logging.level.com.phfund.aplus.ahds.mapper=debug
logging.path=logs/
logging.file=ahds.log
以上只是个简单例子,大家自己可以去了解下。一般项目的日志比上面要复杂。需要根据时间,日志大小,日志级别,指定包等进行滚动配置。
所以需要引入xml配置文件:logback-spring.xml,用-spring结尾则可以和yml或者properties配合使用。
在配置文件中加入下面配置:
logging.config=classpath:logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 此xml在spring-boot-1.5.3.RELEASE.jar里 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<!-- 开启后可以通过jmx动态控制日志级别(springboot Admin的功能) -->
<!--<jmxConfigurator/>-->
<!-- 控制台打印配置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 分别输出:时间,日志级别,线程名,打印位置,文件名,行号,内容 -->
<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
</encoder>
</appender>
<!-- 日志文件配置 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 可以从项目的配置文件获取路径和文件名 -->
<File>${LOG_PATH}${LOG_FILE}</File>
<encoder>
<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 添加.gz 历史日志会启用压缩 大大缩小日志文件所占空间 -->
<fileNamePattern>${LOG_PATH}daily/${LOG_FILE}.%d{yyyy-MM-dd}-%i.gz</fileNamePattern>
<maxHistory>30</maxHistory><!-- 保留30天日志 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 最大20MB 超过最大值,会重新建一个文件-->
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-- 指定包的日志级别-->
<!--<logger name="org.springframework" level="error"/>
<logger name="jdbc.connection" level="OFF"/>
<logger name="org.apache" level="error"/>
<logger name="com.alibaba" level="error"/>
<logger name="org.apache.kafka.clients.producer.ProducerConfig" level="warn"/> -->
<!-- <logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/> -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
<logger name="com.phfund.aplus.ahds.mapper" level="DEBUG"></logger>
</configuration>