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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用Log4j - Java异常处理

發布時間:2024/4/13 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Log4j - Java异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*** Log4j是目前最流行的一種日志框架* 它有兩個版本:* 1.x: Log4j* 2.x: Log4j2* Log4j是一個組件化設計的日志系統* 它是通過append把不同的log輸出到不同的目的地* 例如Console是輸出到屏幕,File是輸出到文件,Socket是輸出到遠程* Filter是過濾哪些log是需要被輸出,哪些log是不需要被輸出,* Layout是用來格式化日志的信息,我們在實際使用的時候,并不需要關系Log4j內部的API* 而是通過配置文件來配置他* Commons Logging可以自動的使用Log4j,如果在classpath中,存在Log4j,* Commons Logging就會自動使用Log4j,所以我們始終使用Commons Logging來寫日志* 在開發階段我們不需要使用Log4j* 我們只需要把正確的配置文件和相關的jar包放入classpath文件就可以了* 我們使用配置文件可以靈活的修改日志,而無需修改代碼* * commons-logging-1.1.2.jar,以及log4j的三個jar包* log4j-jcl-2.6.1* @author Leon.Sun**/ public class Log4jDemo {} import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;/*** 這個時候我們注意到Commons Logging在classpath自動發現log4j的jar包* 他就會直接使用log4j,這個時候我們看到的日志就是log4j打印的,這個時候我們看到的* 日志是由console打印的,也就是只有輸出到console的日志會打印在console的輸出中* * 通過Commons Logging實現日志,不需要修改代碼即可使用Log4j* 我們使用Log4j只需要把log4j2.xml和相關的jar放入classpath* 如果我們要更換Log4j,只需要移除log4j2.xml和相關的jar* 只有在我們需要擴展log4j的時候,我們猜需要引用log4j的接口* @author Leon.Sun**/ public class Test {static final Log log = LogFactory.getLog(CommonsLogging.class);public static void main(String[] args) {Person p = new Person("Xiao Ming");log.error("call hello(): " + p.hello());try {new Person(null);} catch (Exception e) {log.error("Exception when create person.",e);}log.info("Program end.");}} log4j2.xml完美配置 https://blog.51cto.com/1197822/2157668log4j2配置文件log4j2.xml詳解(轉載) https://www.cnblogs.com/new-life/p/9246143.html將log4j.xml修改為log4j2.xml https://blog.csdn.net/weixin_42522453/article/details/83819983 <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.6.2</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.6.2</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jcl --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-jcl</artifactId><version>2.6.2</version></dependency> <?xml version="1.0" encoding="UTF-8"?> <!-- 根節點是一個Configuration --><Configuration status="WARN"><Properties><!-- 日志文件默認輸出格式,不帶行號輸出(行號顯示會影響日志輸出性能);%C:大寫,類名;%M:方法名;%m:錯誤信息;%n:換行 --><!-- 這種定義如何打印日志的格式, --><property name="log.pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M - %m%n</property><!-- 日志默認切割的最小單位 --><property name="every_file_size">20MB</property><!-- Info日志默認同一文件夾下可以存放的數量,不設置此屬性則默認為7個 --><property name="info_max">10</property><!-- 日志默認同類型日志,同一文件夾下可以存放的數量,不設置此屬性則默認為7個 --><property name="rolling_max">50</property><!-- Info日志默認存放路徑(Info級別日志) --><property name="file.all.filename">log/all.log</property><!-- Info日志默認壓縮路徑,將超過指定文件大小的日志,自動存入按"年月"建立的文件夾下面并進行壓縮,作為存檔 --><property name="file.all.pattern">log/all.%i.log.gz</property><!-- Error日志默認存放路徑(Error級別日志) --><property name="file.err.filename">log/err.log</property><!-- Error日志默認壓縮路徑,將超過指定文件大小的日志,自動存入按"年月"建立的文件夾下面并進行壓縮,作為存檔 --><property name="file.err.pattern">log/err.%i.log.gz</property></Properties><Appenders><!-- 第一個appender是console,也就是屏幕 --><Console name="console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console><!-- 我們定義了一個RollingFile的appender,它的name是all,我們引用了fileName的屬性,是我們定義的file.all.filename --><RollingFile name="all" bufferedIO="true" fileName="${file.all.filename}" filePattern="${file.all.pattern}"><PatternLayout pattern="${log.pattern}"/><!-- 我們在Policies中定義了一個TriggerPolicy,這個Policy的意思就是每當文件大小達到20M的時候,他就會自動切割,然后生成一個新的log文件 --><Policies> <SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><!-- 設置同類型日志,同一文件夾下可以存放的數量,如果不設置此屬性則默認存放7個文件 --><DefaultRolloverStrategy max="${info_max}" /></RollingFile><!-- 最后一個appender也是一個rollingFile appender,他的name是err --><RollingFile name="err" bufferedIO="true" fileName="${file.all.filename}" filePattern="${file.err.filename}"><PatternLayout pattern="${log.pattern}"/><Policies> <SizeBasedTriggeringPolicy size="${every_file_size}"/></Policies><DefaultRolloverStrategy max="${info_max}" /></RollingFile></Appenders><!-- 然后定義logger,只有定義了logger并引入的appender,appender才會生效 --><Loggers><!--建立一個默認的root的logger--><!-- 我們先定義了roo log,它的level是info,我們把它關聯到三個appender中,分別是console,all,err,我們對err的level設置error,是所有的error錯誤都會記錄到err這個appender中 --><root level="info"><appender-ref ref="console" level="info"/><appender-ref ref="all" level="info"/><appender-ref ref="err" level="error"/></root><!-- 我們可以給一個包的log指定一個level是debug,就是所有debug級別的都會記錄到console中 --><!-- <logger name="com.learn.logging" level="debug"><appender-ref ref="console"/></logger> --></Loggers></Configuration>

?

總結

以上是生活随笔為你收集整理的使用Log4j - Java异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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