日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

日志配置文件详解-logback,log4j

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日志配置文件详解-logback,log4j 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀

日志是對于我們開發確定問題是至關重要的信息,包括日志的打印,日志的級別,這些都是可以由開發者直接控制,但是一些日志的基本配置,比如打印線程名稱,日志時間格式,日志輸出的位置等,這些日志基本配置,很多開發者不一定了解,雖然我們不常用,但是給你一個日志配置文件能看明白什么意思也是很至關重要的.

配置文件詳解

<?xml version="1.0" encoding="UTF-8"?> <!-- scan:當此屬性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true。 scanPeriod:scan的掃描間隔, 默認單位是毫秒, 默認的時間間隔為1分鐘, 當scan為true時,此屬性生效。 debug:當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。 --> <configuration scan="false" scanPeriod="60 seconds" debug="false"><!-- property定義屬性值,在配置文件別的地方可以用過${name}的方式引用,比如${LOG_HOME} --><property name="LOG_HOME" value="/app/log"/></property><property name="appName" value="bianchengbang-spring-boot-logging"></property><!-- appender 可以理解為日志輸出的渠道定義,關鍵點在class屬性指定的類,更多的class值可以自行百度 --><!-- ch.qos.logback.core.ConsoleAppender 表示控制臺輸出 --><appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><!-- 日志的輸出形式 --><layout class="ch.qos.logback.classic.PatternLayout"><!-- pattern用來定義日志輸出模板 部分日志輸出格式,更多的可以自己百度:%d表示日期時間,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%logger{50} 表示logger名字最長50個字符,否則按照句點分割。%msg:日志消息,%n是換行符--><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread]**************** %-5level %logger{50} - %msg%n</pattern></layout></appender><appender name="stdout_1" class="ch.qos.logback.core.ConsoleAppender"><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定義的是輸出日志到一個文件,ch.qos.logback.core.rolling.RollingFileAppender標識滾動生成文件,也就是按照一定的策略生成日志文件,比如每天生成一個日志文件記錄當天的日志 --><appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 指定日志文件的名稱 --><file>${LOG_HOME}/${appName}.log</file><!--當發生滾動時,決定 RollingFileAppender 的行為,涉及文件移動和重命名TimeBasedRollingPolicy: 最常用的滾動策略,它根據時間來制定滾動策略,既負責滾動也負責觸發滾動。--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--滾動時產生的文件的存放位置及文件名稱 %d{yyyy-MM-dd}:按天進行日志滾動%i:當文件大小超過maxFileSize時,按照i進行文件滾動--><fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!--可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件。假設設置每天滾動,且maxHistory是365,則只保存最近365天的文件,刪除之前的舊文件。注意,刪除舊文件是,那些為了歸檔而創建的目錄也會被刪除。--><MaxHistory>365</MaxHistory><!--當日志文件超過maxFileSize指定的大小是,根據上面提到的%i進行日志文件滾動 注意此處配置SizeBasedTriggeringPolicy是無法實現按文件大小進行滾動的,必須配置timeBasedFileNamingAndTriggeringPolicy--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志輸出格式: --><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><!--logger 主要用于存放日志對象,也可以定義日志類型、級別name:這個是個通配,指定包名的話就是這個包路徑下的所有類都會通過這個logger指定的appender進行日志打印,比如這里:com.example包路徑下的日志輸出都會按照stdout_1定義的日志格式輸出level:要記錄的日志級別,包括 TRACE < DEBUG < INFO < WARN < ERRORadditivity:默認為true,當為false的時候僅僅會按照stdout_1定義的日志格式輸出,下面的root和logger標簽是父子標簽,logger標簽你可以單獨理解為專門為某些包路徑下的類單獨指訂輸出格式,root標簽是兜底的,所有的日志輸出默認都會按照root指定的方式輸出,如果additivity為true,不僅會按照stdout_1,還會按照stdout(輸出到控制臺)和appLogAppender(寫日志)的格式輸出,會打印多遍,是false的話就不會再去觸發父標簽root的指定的格式.--><!-- hibernate logger --><logger name="com.example" level="debug" additivity="false"><appender-ref ref="stdout_1" ></appender-ref></logger><!--root與logger是父子關系,root指定的輸出格式,默認所有的類都會按照這種方式,除非單獨制訂了logger標簽,并且additivity設置為了false才不會觸發--><root level="info"><appender-ref ref="stdout"/><appender-ref ref="appLogAppender"/></root> </configuration> 以上就是配置的基本介紹,很簡單,然后還有就是這個文件的命名和生效條件, 首先這個文件要放在resource目錄下, 文件命名:命名為logback-spring.xml 則會被springboot直接掃描生效, 而且可以在配置文件中的任何地方使用<springProfile>標簽 <!-- 首先這個標簽可以用在日志配置文件的任何地方,這個標簽可以讀取到當前系統啟動觸發的是哪個環境, name屬性的值要和系統配置文件的值(就是application-XXX.yaml中的這個XXX)對應, 比如系統啟動的系統配置文件是dev環境,那么<springProfile>標簽內的配置就會生效,這樣我們就可以做到在同一個日志配置文件中不同的環境日志的輸出格式不同 --> <springProfile name="dev"><!-- configuration to be enabled when the "test" profile is active --> </springProfile> <!--這里定義的一個appender,就可以根據不同的系統環境,自動按照設置打印不同格式的日志,當是dev環境的時候打印的就是***********test環境打印的就是++++++++++--><appender name="stdout_2" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><springProfile name="dev"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread]*************** %-5level %logger{50} - %msg%n</pattern></springProfile><springProfile name="test"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread]+++++++++++++++ %-5level %logger{50} - %msg%n</pattern></springProfile></layout></appender>

如果文件命名:logback.xml那么則需要在系統配置文件里面配上classpath:logback.xml此日志配置文件才會生效.

結束語

這個很簡單,感興趣或者不明白的同學可以用上面的配置試下,很容易就明白了.不過我覺得我寫的已經夠明白了,都顯得絮叨了.以上.log4j也是類似的.

總結

以上是生活随笔為你收集整理的日志配置文件详解-logback,log4j的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。