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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

log4j日志收集

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4j日志收集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 1. log4j 是什么
      • 1. 日志管理工具
      • 2. 有哪些組成部分?
      • 3. 日志級別
    • 2. 輸出端與日志格式化器
      • Appender(輸出端)
      • Layout(日志格式化器)
    • 3. log4j.properties
      • 占位符,格式化日志
    • 4. 使用

1. log4j 是什么

1. 日志管理工具

  • log4j 是 Apache 的一個開源項目
    (官網 http://jakarta.apache.org/log4j),
  • 通過在項目中使用 Log4J,我們可以控制日志信息輸出到控制臺、文件、GUI 組件、甚至是數據庫中。
  • 我們可以控制每一條日志的輸出格式,通過定義日志的輸出級別, 可以更靈活的控制日志的輸出過程。方便項目的調試。

對應的slf4j,也是日志管理工具

一般將日志輸出到文件。或者將日志輸出到數據庫,做成對應的日志管理系統。
方便對程序分析,做出改正。

2. 有哪些組成部分?

log4j 主要由 Loggers (日志記錄器)、Appenders(輸出端)
和 Layout(日志格式化器)組成。
其中 Loggers 控制日志的輸出級別與日志是否輸出;
Appenders 指定日志的輸出方式(輸出到控制臺、文件等);
Layout 控制日志信息的輸出格式。

3. 日志級別

  • OFF 最高日志級別,關閉所有日志
  • FATAL 將會導致應用程序退出的錯誤
  • ERROR 發生錯誤事件,但仍不影響系統的繼續運行
  • WARN 警告,即潛在的錯誤情形
  • INFO 一般和在粗粒度級別上,強調應用程序的運行全程
  • DEBUG 一般用于細粒度級別上,對調試應用程序非常有幫助
  • ALL 最低等級,打開所有日志記錄
  • 一般只使用4個級別,優先級從高到低為 ERROR > WARN > INFO > DEBUG
  • 注意,是error,只會記錄error級別及fatal, off的錯誤

2. 輸出端與日志格式化器

Appender(輸出端)

Appender 用來指定日志輸出到哪個地方,可以同時指定日志的輸出目的地。Log4j 常用的輸出目的地有以下幾種
ConsoleAppender 將日志輸出到控制臺
FileAppender 將日志輸出到文件中
DailyRollingFileAppender 將日志輸出到一個日志文件,并且每天輸出到一個新的文件
RollingFileAppender 將日志信息輸出到一個日志文件,并且指定文件的尺寸,當文件大 小達到指定尺寸時,會自動把文件改名,同時產生一個新的文件
JDBCAppender 把日志信息保存到數據庫中

Layout(日志格式化器)

HTMLLayout 格式化日志輸出為HTML表格形式
SimpleLayout 簡單的日志輸出格式化,打印的日志格式為(info - message)
PatternLayout 最強大的格式化期,可以根據自定義格式輸出日志,如果沒有指定轉換格式,就是用默認的轉換格式

3. log4j.properties

在d盤創建log文件夾,日志會自動輸出到log下

#總控制 日志級別 使用哪些方式輸出。 以error級別,只會logger.error(e)輸出 log4j.rootLogger = error,stdout,D,E,F#將日志輸出到控制臺 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 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = D\://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 ] -[%l] %m%n #輸出至文件 級別 ERROR log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =D\://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 ] -[%l] %m%n#輸出至html文件 log4j.appender.F=org.apache.log4j.DailyRollingFileAppender log4j.appender.F.layout=org.apache.log4j.HTMLLayout log4j.appender.F.File=D\:\\logs\\index.html log4j.appender.F.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] -[%l] %m%n

占位符,格式化日志

%m 輸出代碼中指定的日志信息 %p 輸出優先級,及 DEBUG、INFO 等 %n 換行符(Windows平臺的換行符為 "\n",Unix 平臺為 "\n") %r 輸出自應用啟動到輸出該 log 信息耗費的毫秒數 %c 輸出打印語句所屬的類的全名 %t 輸出產生該日志的線程全名 %d 輸出服務器當前時間,默認格式為 ISO8601,也可以在后面指定格式。如:%d{yyyy年MM月dd日 HH:mm:ss} %l 輸出日志時間發生的位置,包括類名、發生的線程,以及在代碼中的行數,如:Test.main(Test.java:10) %F 輸出日志消息產生時所在的文件名稱 %L 輸出代碼中的行號 %x 輸出和當前線程相關的 NDC(嵌套診斷環境)

4. 使用

private static Logger logger = Logger.getLogger(StudentController.class); @Controller public class AuthorAction extends BaseAction{// 日志對象private static Logger logger = Logger.getLogger(AuthorAction.class);private AuthorService authorService;@Autowiredpublic void setAuthorService(AuthorService authorService) {this.authorService = authorService;}//查詢所有書籍public String findAuthor(){logger.info("查詢所有書籍 start");try{List<Author> authorList = authorService.findAuthor();this.getRequest().setAttribute("authorList", authorList);SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");System.out.println("查詢所有書籍");int count = 1/0;} catch (Exception e) { // logger.info(e.getMessage()); // 記錄普通信息,程序運行過程 // logger.debug(e.getMessage()); // debug模式 // logger.warn(e.getMessage()); // 警告//logger.error(e.getStackTrace()); // 錯誤logger.error(e+"--"+e.getStackTrace()[0].getLineNumber()); // 錯誤類,對應的行號}logger.info("查詢所有書籍 end"); return "authorList";}}

總結

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

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