spring logback mysql_logback 日志输出格式
生活随笔
收集整理的這篇文章主要介紹了
spring logback mysql_logback 日志输出格式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
強烈推薦一個大神的人工智能的教程:http://www.captainbed.net/zhanghan
【前言】
日志對一個系統(tǒng)的重要性不言而喻;日志通常是在排查問題時給人看,一個友好的輸出樣式讓人看到后賞心悅目,排查效率通常也會隨之提高;下面為大家共享一下通過設置logback日志輸出格式,打印出令人欣喜的日志樣式。
【搞一下日志格式】
一、未指定日志格式,日志輸出
1、代碼實現(xiàn)
(1)演示日志輸出控制器
/*2、項目部署服務器后訪問打印日志的效果
二、指定日志格式,日志輸出
1、代碼實現(xiàn)
(1)演示日志輸出控制器(同上)
(2)在項目的resources目錄下增加logback.xml設置打印格式,logback.xml內容如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- 說明: 1、日志級別及文件 日志記錄采用分級記錄,級別與日志文件名相對應,不同級別的日志信息記錄到不同的日志文件中 例如:error級別記錄到log_error_xxx.log或log_error.log(該文件為當前記錄的日志文件),而log_error_xxx.log為歸檔日志,日志文件按日期記錄,同一天內,若日志文件大小等于或大于2M,則按0、1、2...順序分別命名 例如log-level-2013-12-21.0.log其它級別的日志也是如此。 2、文件路徑 若開發(fā)、測試用,在Eclipse中運行項目,則到Eclipse的安裝路徑查找logs文件夾,以相對路徑../logs。若部署到Tomcat下,則在Tomcat下的logs文件中 3、Appender FILEERROR對應error級別,文件名以log-error-xxx.log形式命名FILEWARN對應warn級別,文件名以log-warn-xxx.log形式命名 FILEINFO對應info級別,文件名以log-info-xxx.log形式命名FILEDEBUG對應debug級別,文件名以log-debug-xxx.log形式命名 stdout將日志信息輸出到控制上,為方便開發(fā)測試使用 --> <configuration><springProperty scope="context" name="LOG_HOME" source="spring.application.name"/><springProfile name="local"><property name="LOG_PATH" value="D:/www/logs/common"/> <!-- 日志保存目錄 --></springProfile><springProfile name="dev"><property name="LOG_PATH" value="/data/logs/common" /> <!-- 日志保存目錄 --></springProfile><property name="appName" value="common"/><property name="maxSaveDays" value="365"/><!-- 日志最大保存天數(shù) --><property name="maxFileSize" value="200MB"/><!-- 單個文件最大大小 --><appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)</pattern><charset>UTF-8</charset></encoder></appender><appender name="rollingFileConsole" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-console-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %green([${LOG_HOME},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]) %magenta(${PID:-}) %white(---) %-20(%yellow([%20.20thread])) %-55(%cyan(%.32logger{30}:%L)) %highlight(- %msg%n)</pattern><charset>UTF-8</charset></encoder></appender><appender name="rollingFileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-info-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch></filter></appender><appender name="rollingFileError" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${appName}-log-error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern><maxHistory>${maxSaveDays}</maxHistory> <!--max save days --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${maxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{"yyyy-MM-dd HH:mm:ss,SSS"}[%X{userId}|%X{sessionId}][%p][%c{0}-%M]-%m%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender> <!-- 為單獨的包配置日志級別,若root的級別大于此級別, 此處級別也會輸出 應用場景:生產(chǎn)環(huán)境一般不會將日志級別設置為trace或debug,但是為詳細的記錄SQL語句的情況,可將hibernate的級別設置為debug,如此一來,日志文件中就會出現(xiàn)hibernate的debug級別日志, 而其它包則會按root的級別輸出日志 --><!-- <logger name="org.springframework" level="DEBUG" /> --><logger name="com.ibatis" level="DEBUG"/><logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG"/><logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/><logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"level="INFO"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/><logger name="com.netflix.discovery" additivity="true" level="ERROR"/><!-- 生產(chǎn)環(huán)境,將此級別配置為適合的級別,以名日志文件太多或影響程序性能 --><root level="INFO"><appender-ref ref="rollingFileConsole"/><appender-ref ref="rollingFileInfo"/><appender-ref ref="rollingFileError"/><appender-ref ref="stdout"/></root> </configuration>3、項目部署服務器后訪問打印日志的效果
4、查看日志記錄文件,效果也一樣,效果圖:
三、項目地址
1、地址:https://github.com/dangnianchuntian/springboot
2、代碼版本:1.5.0-Release
【總結】
1、通過設定日志格式,輸出的樣式更加人性化,錯誤也更加明顯;
2、這個小小的改變,使得在排查程序時更加的賞心悅目,心情上的開心將在無形中增加排錯的效率;
總結
以上是生活随笔為你收集整理的spring logback mysql_logback 日志输出格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python十进制小数转二进制_pyth
- 下一篇: python中if的效率_Python算