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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于日志的常用配置(log4j和logback)

發布時間:2025/3/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于日志的常用配置(log4j和logback) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
**log4j配置**

注:在配置log4j前要在web.xml中進行配置,告訴框架采用自定義的配置
pom配置

<!-- 設置根目錄 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <!-- 3000表示 開一條watchdog線程每60秒掃描一下配置文件的變化;這樣便于日志存放位置的改變 --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>3000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>

log4j.propertice### 設置###
log4j.rootLogger = debug,stdout,D,E

輸出信息到控制抬

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

輸出DEBUG 級別以上的日志到=E://logs/error.log

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

輸出ERROR 級別以上的日志到=E://logs/error.log

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
**

常用配置1

**
#日志級別,還可以log4j.rootLogger=INFO,file2,file3 指定file2、3的輸出文件
log4j.rootLogger=info,exception,thread
**#info
#每一天產生1個日志文件**
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
#定義日志存放路徑
log4j.appender.info.File=/usr/tomcat_logs/mailSystem_info.log
#日志文件是否追加
log4j.appender.info.Append=true
#定義的時間格式,如果時間定義到分鐘(mm)就是每分鐘生成一個日志文件,而這里定義的這個格式就是日志名后綴
#log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH-mm 每分鐘
#log4j.appender.file3.DatePattern=’_’ yyyy-MM-dd-HH 每小時
#log4j.appender.file3.DatePattern='_' yyyy-MM-dd每天
#log4j.appender.file3.DatePattern='_' yyyy-MM-dd-a每半天

#日志輸出級別
log4j.appender.info.Threshold=INFO
**#日志編碼
**#log4j.appender.file3.Encoding=UTF-8
#日志中輸出的日志的格式**
log4j.appender.info.layout=org.apache.log4j.PatternLayout
#定義的日志格式
log4j.appender.info.layout.ConversionPattern=%t %d %p [%c] - %m%n
常用配置2
#debug
log4j.appender.debug=org.apache.log4j.RollingFileAppender
log4j.appender.debug.File=/usr/tomcat_logs/mailSystem_debug.log
#設置日志文件的大小
log4j.appender.debug.MaxFileSize=100M
#保存10個備份文件
log4j.appender.debug.MaxBackupIndex=10
log4j.appender.debug.Append=true
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%t %d %p [%c] - %m%n———-
logback
1、maven的依賴
 

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><logback.version>1.1.7</logback.version><slf4j.version>1.7.21</slf4j.version></properties><dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version><scope>compile</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>${logback.version}</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version></dependency></dependencies>

  2、logback.xml配置

<?xml version="1.0" encoding="UTF-8"?> <!-- -scan:當此屬性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true -scanPeriod:設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。 - 當scan為true時,此屬性生效。默認的時間間隔為1分鐘 -debug:當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。 - - configuration 子節點為 appender、logger、root --> <configuration scan="true" scanPeriod="60 second" debug="false"><!-- 負責寫日志,控制臺日志 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- 一是把日志信息轉換成字節數組,二是把字節數組寫入到輸出流 --><encoder><Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern><charset>UTF-8</charset></encoder></appender><!-- 文件日志 --><appender name="DEBUG" class="ch.qos.logback.core.FileAppender"><file>debug.log</file><!-- append: true,日志被追加到文件結尾; false,清空現存文件;默認是true --><append>true</append><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- LevelFilter: 級別過濾器,根據日志級別進行過濾 --><level>DEBUG</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern><charset>UTF-8</charset></encoder></appender><!-- 滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件 --><appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>info.log</File><!-- ThresholdFilter:臨界值過濾器,過濾掉 TRACE 和 DEBUG 級別的日志 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><encoder><Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern><charset>UTF-8</charset></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 每天生成一個日志文件,保存30天的日志文件- 如果隔一段時間沒有輸出日志,前面過期的日志不會被刪除,只有再重新打印日志的時候,會觸發刪除過期日志的操作。--><fileNamePattern>info.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory><TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></TimeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender ><!--<!– 異常日志輸出 –>--><!--<appender name="EXCEPTION" class="ch.qos.logback.core.rolling.RollingFileAppender">--><!--<file>exception.log</file>--><!--<!– 求值過濾器,評估、鑒別日志是否符合指定條件. 需要額外的兩個JAR包,commons-compiler.jar和janino.jar –>--><!--<filter class="ch.qos.logback.core.filter.EvaluatorFilter">--><!--<!– 默認為 ch.qos.logback.classic.boolex.JaninoEventEvaluator –>--><!--<evaluator>--><!--<!– 過濾掉所有日志消息中不包含"Exception"字符串的日志 –>--><!--<expression>return message.contains("Exception");</expression>--><!--</evaluator>--><!--<OnMatch>ACCEPT</OnMatch>--><!--<OnMismatch>DENY</OnMismatch>--><!--</filter>--><!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">--><!--<!– 觸發節點,按固定文件大小生成,超過5M,生成新的日志文件 –>--><!--<maxFileSize>5MB</maxFileSize>--><!--</triggeringPolicy>--><!--</appender>--><appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>error.log</file><encoder><Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern><charset>UTF-8</charset></encoder><!-- 按照固定窗口模式生成日志文件,當文件大于20MB時,生成新的日志文件。- 窗口大小是1到3,當保存了3個歸檔文件后,將覆蓋最早的日志。- 可以指定文件壓縮選項--><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>error.%d{yyyy-MM}(%i).log.zip</fileNamePattern><minIndex>1</minIndex><maxIndex>3</maxIndex><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>30</maxHistory></rollingPolicy></appender><!-- 異步輸出 --><appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender"><!-- 不丟失日志.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日志 --><discardingThreshold >0</discardingThreshold><!-- 更改默認的隊列的深度,該值會影響性能.默認值為256 --><queueSize>512</queueSize><!-- 添加附加的appender,最多只能添加一個 --><appender-ref ref ="ERROR"/></appender><!--- 1.name:包名或類名,用來指定受此logger約束的某一個包或者具體的某一個類- 2.未設置打印級別,所以繼承他的上級<root>的日志級別“DEBUG”- 3.未設置additivity,默認為true,將此logger的打印信息向上級傳遞;- 4.未設置appender,此logger本身不打印任何信息,級別為“DEBUG”及大于“DEBUG”的日志信息傳遞給root,- root接到下級傳遞的信息,交給已經配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺;--><logger name="ch.qos.logback" /><!--- 1.將級別為“INFO”及大于“INFO”的日志信息交給此logger指定的名為“STDOUT”的appender處理,在控制臺中打出日志,- 不再向次logger的上級 <logger name="logback"/> 傳遞打印信息- 2.level:設置打印級別(TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF),還有一個特殊值INHERITED或者同義詞NULL,代表強制執行上級的級別。- 如果未設置此屬性,那么當前logger將會繼承上級的級別。- 3.additivity:為false,表示此logger的打印信息不再向上級傳遞,如果設置為true,會打印兩次- 4.appender-ref:指定了名字為"STDOUT"的appender。--><logger name="com.weizhi.common.LogMain" level="INFO" additivity="false"><appender-ref ref="STDOUT"/><!--<appender-ref ref="DEBUG"/>--><!--<appender-ref ref="EXCEPTION"/>--><!--<appender-ref ref="INFO"/>--><!--<appender-ref ref="ERROR"/>--><appender-ref ref="ASYNC"/></logger><!--- 根logger- level:設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能設置為INHERITED或者同義詞NULL。- 默認是DEBUG。-appender-ref:可以包含零個或多個<appender-ref>元素,標識這個appender將會添加到這個logger--><root level="DEBUG"><appender-ref ref="STDOUT"/><!--<appender-ref ref="DEBUG"/>--><!--<appender-ref ref="EXCEPTION"/>--><!--<appender-ref ref="INFO"/>--><appender-ref ref="ASYNC"/></root> </configuration>

常用配置2

<?xml version="1.0" encoding="UTF-8"?> <!--Copyright 2010-2011 The myBatis TeamLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. --> <configuration><!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑--><property name="LOG_HOME" value="/Users/kx/Desktop" /><!-- 彩色日志 --><!-- 彩色日志依賴的渲染類 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /><conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /><conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /><!-- 彩色日志格式 --><property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" /><!-- Console 輸出設置 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>utf8</charset></encoder></appender><!-- 不用彩色控制臺輸出 --><!-- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> --><!--&lt;!&ndash;格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符&ndash;&gt;--><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>--><!--</encoder>--><!--</appender>--><!-- 按照每天生成日志文件 --><appender name="DAYINFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件輸出的文件名--><FileNamePattern>${LOG_HOME}/TestSpringBoot_info.log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天數--><MaxHistory>30</MaxHistory></rollingPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小--><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender><appender name="DAYERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件輸出的文件名--><FileNamePattern>${LOG_HOME}/TestSpringBoot_error.log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天數--><MaxHistory>30</MaxHistory></rollingPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小--><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender><!-- 日志輸出級別 --><root level="INFO"><appender-ref ref="STDOUT" /><appender-ref ref="DAYERROR" /><appender-ref ref="DAYINFO" /></root> </configuration>

總結

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

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