簡單介紹下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>