Java Log4j 詳細講解


    Log4j 是 Apache 的一個開源項目,通過使用 Log4j,我們可以控制日志輸出的目標、日志的級別、日志的格式等操作。

日志作用

1、記錄系統運行過程中的重要運行信息
    1)付費信息
    2)消費信息
    3)道具掉落信息
2、記錄系統運行過程中的異常信息
    1)服務器運行宕機
    2)程序拋出異常

log4j.properties 基本配置

    log4j.properties 文件共包括3種信息:
    1)記錄器:日志使用的記錄級別和輸出源名稱
    2)輸出源:日志記錄方式(控制台記錄、文件記錄、數據庫記錄)
    3)布局:日志記錄的時間、級別、信息…

# 記錄器:定義當前日志使用的記錄級別和輸出源名稱
# info:日志級別;yz:輸出源的名稱
log4j.rootLogger=info,yz

# 輸出源:日志采用哪種方式記錄(控制台記錄、文件記錄、數據庫記錄)
log4j.appender.yz=org.apache.log4j.ConsoleAppender

# 輸出目標,一般可以不用配置
# log4j.appender.yz.Target=System.out

# 布局類型
log4j.appender.yz.layout=org.apache.log4j.PatternLayout

# 布局:日志記錄的內容包括哪些(記錄時間、記錄類型、記錄級別...)
# %d:日期;%p:日志事件的優先級;%c:類名;%L:行號;%m:logger.info/debug 中輸出的消息;%n:換行;
# 這些可用的符號均在 PatternLayout 中定義
log4j.appender.yz.layout.ConversionPattern=%d %p %c:%L - %m%n

6個日志級別和2個日志開關

    Log4j 中有6個日志級別,在記錄器第一個位置使用某個級別,log4j 會記錄當前級別及更高級別的所有日志信息。

# FATAL(致命)
# ERROR(錯誤)
# WARN(警告)
# INFO(信息)
# DEBUG(調試)
# TRACE(堆棧)
log4j.rootLogger=info,yz

    Log4j 中有兩個開關,在記錄器第一個位置使用 ALL,所有級別都會打印;使用 OFF ,所有級別都不打印。

# ALL(全開)
# OFF(全關)
log4j.rootLogger=all,yz

其他配置

# 定義了 debug 級別,控制台輸出器 A2,文件追加器 files,日常追加器 everyday 和數據庫追加器 DATABASE
log4j.rootLogger=debug,A2,files,everyday,DATABASE

log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# for file
log4j.appender.files=org.apache.log4j.RollingFileAppender
log4j.appender.files.layout=org.apache.log4j.PatternLayout
log4j.appender.files.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.files.File=logger.itcast.log
log4j.appender.files.MaxFileSize=1KB

# for file every day
log4j.appender.everyday=org.apache.log4j.DailyRollingFileAppender
log4j.appender.everyday.layout=org.apache.log4j.PatternLayout
log4j.appender.everyday.File=myloggers.log
log4j.appender.everyday.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.everyday.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.everyday.MaxFileSize=1KB

# for database
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
#log4j.appender.DATABASE.BufferSize=10
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.URL=jjdbc:mysql://127.0.0.1:3306/test
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=root
# className:類名;methodName:方法名;message:日志信息
# '%c','%M','%m':對應 PatternLayout 中定義的格式
log4j.appender.DATABASE.sql=INSERT INTO tbl_log (className,methodName,message) VALUES ('%c','%M','%m')

# 日志分包記錄
log4j.category.com.p7.dao=error
log4j.category.com.p7.pay=debug

Java 聲明 Logger

private static final Logger logger = Logger.getLogger(Log4jTest.class);

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com