當(dāng)前位置:
首頁 >
日志-Log4J
發(fā)布時間:2025/3/15
42
豆豆
日志:
程序中的日志可以用來記錄程序在運行的時候點點滴滴。并可以進行永久存儲
日志和輸出語句的區(qū)別:
| 取消日志 | 需要修改代碼,靈活性比較差 | 不需要修改代碼,靈活性比較好 |
| 輸出位置 | 只能是控制臺 | 可以將日志信息寫入到文件或者數(shù)據(jù)庫中 |
| 多線程 | 和業(yè)務(wù)代碼處于一個線程中 | 多線程方式記錄日志,不影響業(yè)務(wù)代碼的性能 |
Log4J作用:
日志核心技術(shù):
Loggers(記錄器) 日志的級別
- Loggers組件在此系統(tǒng)中常見的五個級別:DEBUG、INFO、WARN、ERROR 和 FATAL。
- DEBUG:開發(fā)過程打印一些基本的信息
- INFO:開發(fā)過程打印一些重要的信息
- WARN:警告,可能會出現(xiàn)問題,給出一些提示
- ERROR:發(fā)生錯誤,但是不影響程序繼續(xù)運行
- FATAL:嚴(yán)重的錯誤,程序會被停止
- DEBUG < INFO < WARN < ERROR < FATAL。
- Log4j有一個規(guī)則:只輸出級別不低于設(shè)定級別的日志信息。對應(yīng)上面的級別
- 比如配置文件定義了一個INFO級別的,那么 DEBUG的就不會被輸入,如果遇到輸出不了的問題,可以看看是不是配置的級別太高了
配置文件:
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.ca.ImmediateFlush=true log4j.appender.ca.Target=System.er log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n測試類:
public class Demo05 {//使用log4j的api來獲取日志的對象//弊端:如果以后我們更換日志的實現(xiàn)類,那么下面的代碼就需要跟著改//不推薦使用// private static final Logger LOGGER = Logger.getLogger(Demo05.class);//使用slf4j里面的api來獲取日志的對象//好處:如果以后我們更換日志的實現(xiàn)類,那么下面的代碼不需要跟著修改//推薦使用private static final Logger LOGGER = LoggerFactory.getLogger(Demo05.class);public static void main(String[] args) {LOGGER.debug("debug級別的日志");LOGGER.info("info級別的日志");LOGGER.warn("warn級別的日志");LOGGER.error("error級別的日志");} }Appenders(輸出源)
Appenders:日志要輸出的地方
- 把日志輸出到不同的地方,如控制臺(Console)、文件(Files)等。
- org.apache.log4j.ConsoleAppender(控制臺)
- org.apache.log4j.FileAppender(文件)
Layouts(布局) 日志輸出的格式
常用的布局管理器:
可以根據(jù)自己的喜好規(guī)定日志輸出的格式
- org.apache.log4j.PatternLayout(可以靈活地指定布局模式)
- org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)
- org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間、線程、類別等信息)
配置文件:
格式:
OFF:關(guān)閉所有日志
ALL:展示所有日志
例如:log4j.rootLogger=INFO,ca,fa
ConsoleAppender(往控制臺輸出)常用的選項
System.err是錯誤輸出流,打印的是紅色的
FileAppender(往文件輸出)常用的選項
- ImmediateFlush=true:表示所有消息都會被立即輸出。設(shè)為false則不輸出,默認值是true
- Append=false
true表示將消息添加到指定文件中,原來的消息不覆蓋。
false則將消息覆蓋指定的文件內(nèi)容,默認值是true。 - File=D:/logs/logging.log4j: 指定消息輸出到logging.log4j文件中
PatternLayout常用的選項
- log4j.PatternLayout:可以靈活的指定布局模式,最常使用
- log4j.SimpleLayout:包含日志信息的級別和信息字符串
- log4j.TTCCLayout:包含日志產(chǎn)生的時間、線程、類別等信息
ConversionPattern=%m%n設(shè)定以怎樣的格式顯示消息
總結(jié)
- 上一篇: html载入hta文件,HTA文件去除h
- 下一篇: Golang——Json的序列化和反序列