經典地址http://blog.csdn.net/azheng270/article/details/2173430
JAVA文件
package mainCenter;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import java.io.UnsupportedEncodingException;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-6-23
* Time: 15:32:14
* To change this template use File | Settings | File Templates.
*/
public class MainCenter {
private static final Logger log = Logger.getLogger(MainCenter.class);
private static final Logger log2 = Logger.getLogger("H");
public static void main(String[] args){
/**
* Log4j配置方法PropertyConfigurator.configure//手工指定配置文件
* 不使用該方法,或者根據該方法找不到文件,則調用根目錄下的默認配置文件,文件名必須是log4j.properties
* 如果不進行手工指定,且根目錄下沒有默認名字的配置文件,則Log4j報錯
*/
//PropertyConfigurator.configure("E:\\workspace\\study\\txtio\\src/log4j2.properties");
try{
KeywordService.load();
for(Map.Entry<String, String> node:KeywordService.keywordList){
//log4j
log2.info(node.getValue());
//普通IO
// String str = null;
// try {
// str = new String(node.getValue().getBytes(), "UTF-8");
// }catch (UnsupportedEncodingException ex) {
// ex.printStackTrace();
// }
// OutputService.write(CnToSpell.getFullSpell(str));
}
}catch(Exception e){
e.printStackTrace();
}
System.out.println("end");
}
}
log4j.properties文件
#將等級爲INFO的日誌輸出到stdout和R兩個目的地
log4j.rootLogger=INFO, stdout, R
log4j.logger.H=INFO, R, DATABASE#H是包名,程序中Logger.getLogger("H")可以獲得該logger
log4j.logger.H.K=INFO, R, DATABASE#H.K默認會繼承H,這裏進行了重定義
#子Log無法覆蓋根Log,都寫的結果是輸出
#log4j.logger.com.gargoylesoftware.htmlunit.html.BaseFrame=FATAL
#log4j.logger.com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.out
#Target=System.out是默認值
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss.SSS} %5p (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/log4j1.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss.SSS} %5p (%F:%L) - %m%n
log4j.appender.R.Append=true#log4j.rootLogger;
#其中 [level] 是日誌輸出級別,共有5級:
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7
#log4j.appender = list;
# log4j.appender.name1=org.apache.log4j.ConsoleAppender(控制檯);
# //公共屬性
# log4j.appender.name1.Layout=org.apache.log4j.HTMLLayout(以HTML表格形式佈局);
# log4j.appender.name1.Append = true
# log4j.appender.D.Threshold = DEBUG
## 只輸出DEBUG級別以上的日誌(重定向級別)
## //私有屬性
# log4j.appender.name1.Target = System.out
# log4j.appender.name1.x2
# log4j.appender.name1.x3
# log4j.appender.name1.x4
# log4j.appender.name2=org.apache.log4j.FileAppender(文件);
# //公共屬性
# log4j.appender.name2.Layout=org.apache.log4j.PatternLayout(可以靈活地指定佈局模式);
# log4j.appender.name2.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
# log4j.appender.name2.Append = true
# log4j.appender.D.Threshold = DEBUG
## 只輸出DEBUG級別以上的日誌(重定向級別)
## //私有屬性
# log4j.appender.name2.File = logs/error.log
# log4j.appender.name2.x
# log4j.appender.name2.x
# log4j.appender.name3=org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件);
# //公共屬性
# log4j.appender.name3.Layout=org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串);
# log4j.appender.name3.Append = true
# log4j.appender.D.Threshold = DEBUG
## 只輸出DEBUG級別以上的日誌(重定向級別)
## //私有屬性
# log4j.appender.name3.File = logs/error.log
# log4j.appender.name3.x
# log4j.appender.name3.x
# log4j.appender.name4=org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件);
# //公共屬性
# log4j.appender.name4.Layout=org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息);
# log4j.appender.name4.Append = true# log4j.appender.D.Threshold = DEBUG
## 只輸出DEBUG級別以上的日誌(重定向級別)
## //私有屬性
# log4j.appender.name4.File = logs/error.log
# log4j.appender.name4.x
# log4j.appender.name4.x
# log4j.appender.name5=org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方);
# //公共屬性
# log4j.appender.name5.Layout=上述任何一種;
# log4j.appender.name5.Append = true# log4j.appender.D.Threshold = DEBUG
## 只輸出DEBUG級別以上的日誌(重定向級別)
## //私有屬性
# log4j.appender.name5.x
# log4j.appender.name5.x
# log4j.appender.name5.x
########################
# JDBC Appender
#######################
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver log4j.appender.DATABASE.user=weinianjie
log4j.appender.DATABASE.password=123
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n