1.配置文件
完整配置如下:
1 log4j.rootLogger=CONSOLE,FILE
2 log4j.addivity.org.apache=true
3
4 # 應用於控制檯
5 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
6 log4j.appender.CONSOLE.Threshold=INFO
7 log4j.appender.CONSOLE.Target=System.out
8 log4j.appender.CONSOLE.Encoding=GBK
9 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
10 log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
11
12 # 每天新建日誌
13 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
14 log4j.appender.A1.File=C:/log4j/log
15 log4j.appender.A1.Encoding=GBK
16 log4j.appender.A1.Threshold=DEBUG
17 log4j.appender.A1.DatePattern='.'yyyy-MM-dd
18 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
19 log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
20
21 #應用於文件
22 log4j.appender.FILE=org.apache.log4j.FileAppender
23 log4j.appender.FILE.File=C:/log4j/file.log
24 log4j.appender.FILE.Append=false
25 log4j.appender.FILE.Encoding=GBK
26 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
27 log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
28
29 # 應用於文件回滾
30 log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
31 log4j.appender.ROLLING_FILE.Threshold=ERROR
32 log4j.appender.ROLLING_FILE.File=rolling.log
33 log4j.appender.ROLLING_FILE.Append=true
34 log4j.appender.CONSOLE_FILE.Encoding=GBK
35 log4j.appender.ROLLING_FILE.MaxFileSize=10KB
36 log4j.appender.ROLLING_FILE.MaxBackupIndex=1
37 log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
38 log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
39
40 #自定義Appender
41 log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
42 log4j.appender.im.host = mail.cybercorlin.net
43 log4j.appender.im.username = username
44 log4j.appender.im.password = password
45 log4j.appender.im.recipient = [email protected]
46 log4j.appender.im.layout=org.apache.log4j.PatternLayout
47 log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
48
49 #應用於socket
50 log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
51 log4j.appender.SOCKET.RemoteHost=localhost
52 log4j.appender.SOCKET.Port=5001
53 log4j.appender.SOCKET.LocationInfo=true
54 # Set up for Log Facter 5
55 log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
56 log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
57 # Log Factor 5 Appender
58 log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
59 log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
60
61 # 發送日誌給郵件
62 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
63 log4j.appender.MAIL.Threshold=FATAL
64 log4j.appender.MAIL.BufferSize=10
66 log4j.appender.MAIL.SMTPHost=www.wusetu.com
67 log4j.appender.MAIL.Subject=Log4J Message
69 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
70 log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
使用Log4j的時候,總是出現
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
解決方案:
把上面詳細配置的log4j.rootLogger=CONSOLE,FILE
改爲log4j.rootLogger=DEBUG,CONSOLE,FILE,你就發現,控制檯信息又回來了
2.加載配置文件
3.使用logger日誌文件
具體示例如下所示:
(1)Logger4j配置文件:
### set log levels ###
log4j.rootLogger = info,daqAppender,D,outAppender
#log4j.rootLogger = DEBUG,CONSOLE,FILE
log4j.appender.D = org.apache.log4j.ConsoleAppender
log4j.appender.D.Target = System.out
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =
%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.daqAppender =
org.apache.log4j.DailyRollingFileAppender
log4j.appender.daqAppender.File = logs/log.log
log4j.appender.daqAppender.Append = true
log4j.appender.daqAppender.Threshold = info
log4j.appender.daqAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.daqAppender.layout.ConversionPattern =
%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.outAppender =
org.apache.log4j.DailyRollingFileAppender
log4j.appender.outAppender.File = logs/error.log
log4j.appender.outAppender.Append = true
log4j.appender.outAppender.Threshold = ERROR
log4j.appender.outAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.outAppender.layout.ConversionPattern =
%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
(2)加載配置文件
URL pa =
ClassLoader.getSystemResource("resources/log4j.properties");
PropertyConfigurator.configure(pa);
(3)使用logger4j輸出日誌
Loggers.daqlog.info("日誌參數加載--info--");
該Loggers日誌類如下所示:
import org.apache.log4j.Logger;
public class Loggers {
public static Logger daqlog=Logger.getLogger("daqAppender");
public static Logger outlog=Logger.getLogger("outAppender");
}
Sue remark:上面的示例是自定義的,
定義日誌文件輸出的位置:
log4j.appender.outAppender.File = logs/error.log
log4j.appender.daqAppender.File = logs/log.log
定義日誌的級別:
log4j.appender.outAppender.Threshold = ERROR
log4j.appender.daqAppender.Threshold = info
定義日誌的佈局:
log4j.appender.outAppender.layout = org.apache.log4j.PatternLayout
定義日誌輸出的格式:
log4j.appender.outAppender.layout.ConversionPattern =
%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
標識的意思:
# %c 輸出日記信息所屬的類的全名
# %d 輸出日記時間點的日期或時間,默許格式爲ISO8601,也可以或許在厥後指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出近似:2002-10-# 18- 22:10:28
# %f 輸出日記信息所屬的類的類名
# %l 輸出日記事件的產生地位,即輸出日記信息的語句處於它地點的類的第幾行
# %m 輸出代碼中指定的信息,如log(message)中的message
# %n 輸出一個回車換行符,Windows平臺爲“ ”,Unix平臺爲“ ”
# %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。假定是調用debug()輸出的,則爲DEBUG,依此類推
# %r 輸出自利用啓動到輸出該日記信息所破鈔的毫秒數
# %t 輸生產生該日記事件的線程名