1. 程式人生 > >log4j詳細配置

log4j詳細配置

文件 日誌打印 bug CA 別人 使用 error org .info

參考博客:https://blog.csdn.net/sinat_30185177/article/details/73550377

log4j。。很簡單好用的一個記錄日誌的東東,正因為好用,本人從來沒有親自配置過(都是別人在項目裏面配好的,直接copy過來用),但是最近進了一家新公司,(或許因為某些原因)他們封裝了一個日誌工具類日誌打印特定的信息,因為此項目以後由我接手,所以我做主就後來改了日誌打印方式,原本代碼如下:

此方式稱之為方法一..

public class LogTool {

    public static void debugSysLog(String logtext) {
        writeLog(logtext,
"info"); System.out.println(logtext); } static Logger log = Logger.getLogger(LogTool.class); public static void writeLog(String msg,String level){ if(level.equals("debug")) log.debug(msg); else if(level.equals("error")) log.error(msg);
else if(level.equals("warn")) log.warn(msg); else log.info(msg); } }

log4j.properties的代碼:

log4j.rootLogger=INFO,logfile,stdout,DEBUG

#輸出到控制臺
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Target 
= System.out log4j.appender.stdout.layout.ConversionPattern=%d %p [%c]:%l - %m%n #log4j.appender.logfile=org.apache.log4j.FileAppender #log4j.appender.logfile=org.apache.log4j.RollingFileAppender
#log4j.appender.logfile.MaxFileSize
=1MB #輸出到文件 log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logfile.DatePattern=‘.‘yyyy-MM-dd log4j.appender.logfile.File=${catalina.home}/webapps/logs/invoice.log #log4j.appender.logfile.MaxBackupIndex=20 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p : %l - %m%n

上面的log4j配置文件我已經修改過了,原本的是不打印錯誤信息的,即下面的一些東東記一下就行了。
#%m 輸出代碼中指定的消息
#%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 輸出自應用啟動到輸出該log信息耗費的毫秒數
#%c 輸出所屬的類目,通常就是所在類的全名
#%t 輸出產生該日誌事件的線程名
#%n 輸出一個回車換行符,Windows平臺為“/r/n”,Unix平臺為“/n”
#%d 輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},輸出類似:2002年10月18日 22:10:28
#%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java: 10 )

技術分享圖片

使用工具類打印的信息如上圖紅色部分(很整潔,漂亮,,有亂用??有一次項目報錯空指針,都不知道哪裏錯的。。)

方法二:

使用同樣的配置文件,在項目裏面使用如下代碼打印日誌,會提示的很完整,且方法一能實現的方法二都可以實現..
Logger log = Logger.getLogger(InvoiceBuildServlet.class);

在catch裏面用 log.error("error",e);

很簡單。。

下面是配置文件源文件的下載地址

https://files.cnblogs.com/files/haopengchen/log4j.properties.zip

log4j詳細配置