聽 log4j.rootLogger=debug, stdout, R
聽 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
聽 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
聽 # Pattern to output the caller's file name and line number.
聽 log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
聽 log4j.appender.R=org.apache.log4j.RollingFileAppender
聽 log4j.appender.R.File=example.log
聽 log4j.appender.R.MaxFileSize=
100KB
聽 # Keep one backup file
聽 log4j.appender.R.MaxBackupIndex=1
聽 log4j.appender.R.layout=org.apache.log4j.PatternLayout
聽 log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n聽聽聽聽聽聽聽聽聽
聽 棣栧厛錛屾槸璁劇疆root錛屾牸寮忎負 log4j.rootLogger=[level],appenderName,聽...錛屽叾涓璴evel灝辨槸璁劇疆闇瑕佽緭鍑轟俊鎭殑綰у埆錛屽悗闈㈡槸appender鐨勮緭鍑虹殑鐩殑鍦幫紝appenderName灝辨槸鎸囧畾鏃ュ織淇℃伅杈撳嚭鍒板摢涓湴鏂廣傛偍鍙互鍚屾椂鎸囧畾澶氫釜杈撳嚭鐩殑鍦般?/font>
閰嶇疆鏃ュ織淇℃伅杈撳嚭鐩殑鍦癆ppender錛屽叾璇硶涓?br />
聽 log4j.appender.appenderName = fully.qualified.name.of.appender.class
聽 log4j.appender.appenderName.option1 = value1
聽 ...
聽 log4j.appender.appenderName.option = valueN
Log4j鎻愪緵鐨刟ppender鏈変互涓嬪嚑縐嶏細
聽 org.apache.log4j.ConsoleAppender錛堟帶鍒跺彴錛?br />聽 org.apache.log4j.FileAppender錛堟枃浠訛級
聽 org.apache.log4j.DailyRollingFileAppender錛堟瘡澶╀駭鐢熶竴涓棩蹇楁枃浠訛級
聽 org.apache.log4j.RollingFileAppender錛堟枃浠跺ぇ灝忓埌杈炬寚瀹氬昂瀵哥殑鏃跺欎駭鐢熸柊鏂囦歡錛?br />聽 org.apache.log4j.WriterAppender錛堝皢鏃ュ織淇℃伅浠ユ祦鏍煎紡鍙戦佸埌浠繪剰鎸囧畾鐨勫湴鏂癸級
閰嶇疆鏃ュ織淇℃伅鐨勬牸寮忥紙甯冨眬錛夛紝鍏惰娉曚負錛?br />
聽 log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
聽 log4j.appender.appenderName.layout.option1 = value1
聽 ....
聽 log4j.appender.appenderName.layout.option = valueN
Log4j鎻愪緵鐨刲ayout鏈変互涓嬪嚑縐嶏細
聽 org.apache.log4j.HTMLLayout錛堜互HTML琛ㄦ牸褰㈠紡甯冨眬錛夛紝
聽 org.apache.log4j.PatternLayout錛堝彲浠ョ伒媧誨湴鎸囧畾甯冨眬妯″紡錛夛紝
聽 org.apache.log4j.SimpleLayout錛堝寘鍚棩蹇椾俊鎭殑綰у埆鍜屼俊鎭瓧絎︿覆錛夛紝
聽 org.apache.log4j.TTCCLayout錛堝寘鍚棩蹇椾駭鐢熺殑鏃墮棿銆佺嚎紼嬨佺被鍒瓑絳変俊鎭級
Log4J閲囩敤綾諱技C璇█涓殑printf鍑芥暟鐨勬墦鍗版牸寮忔牸寮忓寲鏃ュ織淇℃伅錛屾墦鍗板弬鏁板涓嬶細 %m 杈撳嚭浠g爜涓寚瀹氱殑娑堟伅
銆銆
%p 杈撳嚭浼樺厛綰э紝鍗矰EBUG錛孖NFO錛學ARN錛孍RROR錛孎ATAL
銆銆%r 杈撳嚭鑷簲鐢ㄥ惎鍔ㄥ埌杈撳嚭璇og淇℃伅鑰楄垂鐨勬縐掓暟
銆銆%c 杈撳嚭鎵灞炵殑綾葷洰錛岄氬父灝辨槸鎵鍦ㄧ被鐨勫叏鍚?
銆銆%t 杈撳嚭浜х敓璇ユ棩蹇椾簨浠剁殑綰跨▼鍚?
銆銆%n 杈撳嚭涓涓洖杞︽崲琛岀錛學indows騫沖彴涓衡淺r\n鈥濓紝Unix騫沖彴涓衡淺n鈥?
銆銆%d 杈撳嚭鏃ュ織鏃墮棿鐐圭殑鏃ユ湡鎴栨椂闂達紝榛樿鏍煎紡涓篒SO8601錛屼篃鍙互鍦ㄥ叾鍚庢寚瀹氭牸寮忥紝姣斿錛?d{yyy MMM dd HH:mm:ss,SSS}錛岃緭鍑虹被浼鹼細
2002騫?0鏈?8鏃?/font>
22錛?0錛?8錛?21
銆銆%l 杈撳嚭鏃ュ織浜嬩歡鐨勫彂鐢熶綅緗紝鍖呮嫭綾葷洰鍚嶃佸彂鐢熺殑綰跨▼錛屼互鍙婂湪浠g爜涓殑琛屾暟銆備婦渚嬶細Testlog4.main(TestLog4.java:10)
4銆丩og4j鍦ㄧ▼搴忎腑鐨勪嬌鐢?/strong>
聽 瑕佸湪鑷繁鐨勭▼搴忎腑浣跨敤Log4j錛岄鍏堥渶瑕佸皢commons-logging.jar鍜宭ogging-log4j-1.2.9.jar瀵煎叆鍒版瀯寤鴻礬寰勪腑銆傜劧鍚庡啀灝唋og4j.properties鏀懼埌src鏍圭洰褰曚笅銆傝繖鏍峰氨鍙互鍦ㄧ▼搴忎腑浣跨敤log4j浜嗐傚湪綾諱腑浣跨敤log4j錛?/font>
棣栧厛澹版槑涓涓潤鎬佸彉閲?/font>
Logger logger=Logger.getLog("classname")錛涚幇鍦ㄥ氨鍙互浣跨敤浜嗭紝鐢ㄦ硶濡備笅錛歭ogger.debug("debug message")鎴栬卨ogger.info("info message")錛岀湅涓嬮潰涓涓皬渚嬪瓙錛?/font>
聽 import com.foo.Bar;
聽 import org.apache.log4j.Logger;
聽聽import org.apache.log4j.PropertyConfigurator;
聽聽public class MyApp {
聽 聽 static Logger logger = Logger.getLogger(MyApp.class.getName());
聽聽 聽public static void main(String[] args) {
聽聽聽 聽 // BasicConfigurator replaced with PropertyConfigurator.
聽聽聽聽 聽PropertyConfigurator.configure(args[0]);
聽聽聽聽聽 logger.info("Entering application.");
聽聽聽聽聽 Bar bar = new Bar();
聽聽聽聽聽 bar.doIt();
聽聽聽聽聽 logger.info("Exiting application.");
聽聽聽 }
聽聽}

]]>