不錯的教程:http://kdboy.iteye.com/blog/208851
下面是我的測試文件:
import org.apache.log4j.HTMLLayout;
import org.apache.log4j.Logger;
public class Jtest extends HTMLLayout {
public static Logger log = Logger.getLogger(Jtest.class);
public static void main(String[] args) {
try {
throw new RuntimeException("wrong");
} catch (Exception e) {
String info = "hello>>";
for (int i = 0; i < 20000; i++) {
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
log.error(i + "sunyard>>>" + e.getMessage() + info);
}
}
}
}
操作數據庫(記着加驅動包):
log4j.rootLogger=ERROR,appender1,appender2
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appnder.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
log4j.appender.appender2=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.appender2.driver=com.mysql.jdbc.Driver
log4j.appender.appender2.URL=jdbc:mysql://localhost:3306/log4j?useUnicode=true&characterEncoding=UTF-8
log4j.appender.appender2.user=root
log4j.appender.appender2.password=root
log4j.appender.appender2.sql=insert into logtable (cdate, message) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n')
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
發送郵件:
log4j.rootLogger=DEBUG,CONSOLE,MAIL
log4j.addivity.org.apache=true
# 應用於控制檯
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[thread] n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.syslog.encoding=UTF-8
# 日誌的錯誤級別
log4j.appender.MAIL.Threshold=ERROR
# 緩存文件大小,日誌達到512K時發送Email
log4j.appender.MAIL.BufferSize=512
# 發送郵件的服務器
log4j.appender.MAIL.SMTPHost=smtp.163.com
log4j.appender.MAIL.encoding=UTF-8
# 郵件的標題
log4j.appender.MAIL.Subject=mail subject
# 用戶名
[email protected]
# 密碼
log4j.appender.MAIL.SMTPPassword=*******
log4j.appender.MAIL.SMTPDebug=TRUE
# 發件人地址
[email protected]
# 日誌郵件的接收者[email protected]
[email protected], [email protected]
# 日誌PatternLayout
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
# 日誌的格式
log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n %d - %c -%-4r [%t] %-5p %c %x - %m%n
不過, 郵件會出現中文亂碼, 還未解決!
注意, 最好在要接受的用戶服務器上設置163.com爲白名單, 否則可能會被認爲是垃圾郵件被屏蔽。
log4j.rootLogger=info, R
# 根據日誌文件大小自動產生新日誌文件,最多產生100個備份文件,
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=backup.log
log4j.appender.R.MaxFileSize=512KB
log4j.appender.R.MaxBackupIndex=100
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#按照一定時間產生日誌文件,配置文件如下:
log4j.rootLogger=ERROR,R
# R is set to be a DailyRollingFileAppender.
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=backup.log
#每分鐘產生一個日誌文件
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH-mm
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#以上配置是每天產生一個備份文件。其中備份文件的名字叫backup.log
#具體的效果是這樣:當天的日誌信息記錄在backup.log文件中
#前一天的記錄在名稱爲backup.log.yyyy-mm-dd 的文件中。
#類似的,如果需要每月產生一個文件可以修改上面的配置:
#將log4j.appender.R.DatePattern = '.'yyyy-MM-dd改爲
#log4j.appender.R.DatePattern = '.'yyyy-MM
#每分鐘產生一個日誌文件log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH-mm
#以網頁的形式每分鐘產生一個日誌文件
log4j.rootLogger=ERROR,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=backup.html
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH-mm
log4j.appender.R.layout=org.apache.log4j.HTMLLayout