锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品无码观看不卡,亚洲国产成人综合,亚洲女人18毛片水真多http://www.tkk7.com/haoqingshi/articles/21948.htmlJava&InterJava&InterWed, 30 Nov 2005 05:33:00 GMThttp://www.tkk7.com/haoqingshi/articles/21948.htmlhttp://www.tkk7.com/haoqingshi/comments/21948.htmlhttp://www.tkk7.com/haoqingshi/articles/21948.html#Feedback0http://www.tkk7.com/haoqingshi/comments/commentRss/21948.htmlhttp://www.tkk7.com/haoqingshi/services/trackbacks/21948.html
Log4j 瀛︿範絎旇

by heavyz
2003-04-15


Log4j涓婚〉錛?A >http://jakarta.apache.org/log4j


Index

  1. Log4j鐨勭被鍥?
  2. Logger錛氭棩蹇楀啓鍑哄櫒
    1. Logger鐨勮緭鍑烘柟娉?
    2. Logger鐨勫懡鍚嶈鍒?
    3. Log level
    4. 紺轟緥浠g爜
    5. 鍏充簬logger鐨勪袱鐐硅鏄?
  3. Appender錛氭棩蹇楃洰鐨勫湴
    1. ConsoleAppender
    2. FileAppender
    3. RollingFileAppender
  4. Layout錛氭棩蹇楁牸寮忓寲鍣?
    1. PatternLayout
    2. patterns in PatternLayout
  5. Configuration錛氶厤緗?
    1. 榛樿鐨刲og4j鍒濆鍖栬繃紼?
    2. BasicConfigurator.configure()
    3. xml鏍煎紡鐨刲og4j閰嶇疆鏂囦歡姒傝堪
    4. 鍦▁ml鏂囦歡涓厤緗產ppender鍜宭ayout
    5. 鎴戣嚜宸辯殑涓涓嬌鐢▁ml鏂囦歡閰嶇疆log4j鐜鐨勫緢綆鍗曠殑渚嬪瓙
  6. Log4j鐨勭紪鐮佷範鎯?
  7. 鍙傝冭祫鏂?


Log4j鐨勭被鍥?/B>

  1. Logger - 鏃ュ織鍐欏嚭鍣紝渚涚▼搴忓憳杈撳嚭鏃ュ織淇℃伅
  2. Appender - 鏃ュ織鐩殑鍦幫紝鎶婃牸寮忓寲濂界殑鏃ュ織淇℃伅杈撳嚭鍒版寚瀹氱殑鍦版柟鍘?
    1. ConsoleAppender - 鐩殑鍦頒負鎺у埗鍙扮殑Appender
    2. FileAppender - 鐩殑鍦頒負鏂囦歡鐨凙ppender
    3. RollingFileAppender - 鐩殑鍦頒負澶у皬鍙楅檺鐨勬枃浠剁殑Appender
  3. Layout - 鏃ュ織鏍煎紡鍖栧櫒錛岀敤鏉ユ妸紼嬪簭鍛樼殑logging request鏍煎紡鍖栨垚瀛楃涓?
    1. PatternLayout - 鐢ㄦ寚瀹氱殑pattern鏍煎紡鍖杔ogging request鐨凩ayout


Logger錛氭棩蹇楀啓鍑哄櫒

Logger瀵硅薄鏄敤鏉ュ彇浠?TT>System.out鎴栬?TT>System.err鐨勬棩蹇楀啓鍑哄櫒錛岀敤鏉ヤ緵紼嬪簭鍛樿緭鍑烘棩蹇椾俊鎭?/P>
Logger鐨勮緭鍑烘柟娉?/B>

Logger綾誨璞℃彁渚涗竴緋誨垪鏂規硶渚涚▼搴忓憳杈撳嚭鏃ュ織淇℃伅銆?/P>

        

        ------ Log4j APIs : class Logger ------
        
        
        
        // Printing methods :
        
        public void debug(Object msg);
        public void debug(Object msg, Throwable t);
        
        public void info(Object msg);
        public void info(Object msg, Throwable t);
        
        public void warn(Object msg);
        public void warn(Object msg, Throwable t);
        
        public void error(Object msg);
        public void error(Object msg, Throwable t);
        
        public void fatal(Object msg);
        public void fatal(Object msg, Throwable t);
        
        // Generic printing method :
        
        public void log(Level l, Object msg);
      


Logger鐨勫懡鍚嶈鍒?/B>

Logger鐢變竴涓猄tring綾葷殑鍚嶅瓧璇嗗埆錛宭ogger鐨勫悕瀛楁槸澶у皬鍐欐晱鎰熺殑錛屼笖鍚嶅瓧涔嬮棿鍏鋒湁緇ф壙鐨勫叧緋伙紝瀛愬悕鏈夌埗鍚嶄綔涓哄墠緙錛岀敤鐐瑰彿.鍒嗛殧銆傚錛?TT>x.y鏄?TT>x.y.z鐨勭埗浜層?/P>

鏍筶ogger (root logger)鏄墍鏈塴ogger鐨勭鍏堬紝瀹冨叿鏈夊涓嬪睘鎬э細1) 瀹冩繪槸瀛樺湪鐨勶紱2) 瀹冧笉鍙互閫氳繃鍚嶅瓧鑾峰緱銆?/P>

閫氳繃璋冪敤public static Logger Logger.getRootLogger()鑾峰緱root logger錛涢氳繃璋冪敤public static Logger Logger.getLogger(String name)鎴栬?TT>public static Logger Logger.getLogger(Class clazz)鑾峰緱錛堟垨鑰呭垱寤猴級涓涓?TT>named logger銆傚悗鑰呯浉褰撲簬璋冪敤Logger.getLogger(clazz.getName())銆?/P>

鍦ㄦ煇瀵硅薄涓紝鐢ㄨ瀵硅薄鎵灞炵殑綾諱負鍙傛暟錛岃皟鐢?TT>Logger.getLogger(Class clazz)浠ヨ幏寰條ogger琚涓烘槸鐩墠鎵鐭ョ殑鏈鐞嗘櫤鐨勫懡鍚峫ogger鐨勬柟娉曘?/P>


Log level

姣忎釜logger閮借鍒嗛厤浜嗕竴涓棩蹇楃駭鍒?(log level)錛岀敤鏉ユ帶鍒舵棩蹇椾俊鎭殑杈撳嚭銆傛湭琚垎閰峫evel鐨刲ogger灝嗙戶鎵垮畠鏈榪戠殑鐖秎ogger鐨刲evel銆?/P>

姣忔潯杈撳嚭鍒發ogger鐨勬棩蹇楄姹?logging request)涔熼兘鏈変竴涓猯evel錛屽鏋滆request鐨刲evel澶т簬絳変簬璇ogger鐨刲evel錛屽垯璇equest灝嗚澶勭悊錛堢О涓篹nabled錛夛紱鍚﹀垯璇equest灝嗚蹇界暐銆傛晠鍙緱鐭ワ細

  1. logger鐨刲evel瓚婁綆錛岃〃紺鴻logger瓚婅緇?
  2. logging request鐨刲evel瓚婇珮錛岃〃紺鴻logging request瓚婁紭鍏堣緭鍑?

Level綾諱腑棰勫畾涔変簡浜斾釜level錛屽畠浠殑澶у皬鍏崇郴濡備笅錛?/P>

        Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
      


紺轟緥浠g爜

浠ヤ笅浠g爜灝嗙敤鑷繁鎵灞炵殑綾諱負鍙傛暟錛屽垱寤轟竴涓猯ogger錛屽惎鐢ㄩ粯璁ら厤緗紝璁劇疆鍏秎evel騫跺悜鍏惰緭鍑鴻嫢騫瞝ogging request銆?/P>

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;

public class Log4jTest {
    public static void main(String argv[]) {
    
        
        // Create a logger by the name of class Log4jTest.
        
        Logger logger = Logger.getLogger(Log4jTest.class);
        
        // Use the default configuration.
        
        BasicConfigurator.configure();
        
        // Set the logger level to Level.INFO
        
        logger.setLevel(Level.INFO);
        
        // This request will be disabled since Level.DEBUG < Level.INFO.
                  
        logger.debug("This is debug.");
        
        // These requests will be enabled.
                  
        logger.info("This is an info.");
        logger.warn("This is a warning.");
        logger.error("This is an error.");
        logger.fatal("This is a fatal error.");
        
        return;
    }
}
      


鍏充簬logger鐨勪袱鐐硅鏄?/B>

  1. 鐢ㄥ悓鍚嶅弬鏁拌皟鐢?TT>Logger.getLogger(String name)灝嗚繑鍥炲悓涓涓猯ogger鐨勫紩鐢ㄣ傛晠鍙互鍦ㄤ竴涓湴鏂歸厤緗甽ogger錛屽湪鍙﹀涓涓湴鏂硅幏寰楅厤緗ソ鐨刲ogger錛岃屾棤欏葷浉浜掗棿浼犻抣ogger鐨勫紩鐢ㄣ?
  2. logger鐨勫垱寤哄彲浠ユ寜鐓т換鎰忕殑欏哄簭錛屽嵆錛岀埗logger鍙互鍚庝簬瀛恖ogger琚垱寤恒俵og4j灝嗚嚜鍔ㄧ淮鎶ogger鐨勭戶鎵挎爲銆?



Appender錛氭棩蹇楃洰鐨勫湴

姣忎釜logger閮藉彲浠ユ嫢鏈変竴涓垨鑰呭涓猘ppender錛屾瘡涓猘ppender琛ㄧず涓涓棩蹇楃殑杈撳嚭鐩殑鍦幫紝姣斿console鎴栬呮煇涓枃浠躲傚彲浠ヤ嬌鐢?TT>Logger.addAppender(Appender app)涓簂ogger澧炲姞涓涓猘ppender錛涘彲浠ヤ嬌鐢?TT>Logger.removeAppender(Appender app)涓簂ogger縐婚櫎涓涓猘ppender銆?/P>

榛樿鎯呭喌涓嬶紝logger鐨刟dditive鏍囧織琚緗負true錛岃〃紺哄瓙logger灝嗙戶鎵跨埗logger鐨勬墍鏈塧ppenders銆傝閫夐」鍙互琚噸鏂拌緗紝琛ㄧず瀛恖ogger灝嗕笉鍐嶇戶鎵跨埗logger鐨刟ppenders銆?/P>

root logger鎷ユ湁鐩爣涓?TT>system.out鐨?TT>consoleAppender錛屾晠榛樿鎯呭喌涓嬶紝鎵鏈夌殑logger閮藉皢緇ф壙璇ppender銆?/P>

      

      ------ Log4j APIs : class Logger ------
      
      
      
      // 涓簂ogger瀵硅薄澧炲姞鎴栬呯Щ闄や竴涓狝ppender瀵硅薄 :.
      
      public void appAppender(Appender app);
      public void removeAppender(Appender app);
      
      // 鑾峰緱鍜岃緗產dditive鏍囧織錛氭槸鍚︾戶鎵跨埗logger鐨刟ppenders :.
      // 娉ㄦ剰錛?/B>鍦ㄨ緗產dditive鏍囧織涓篺alse鏃訛紝蹇呴』淇濊瘉宸茬粡涓鴻logger璁劇疆浜嗘柊鐨刟ppender錛?:.
      // 鍚﹀垯log4j灝嗘姤閿欙細log4j:WARN No appenders could be found for logger (x.y.z). :.
      
      public boolean getAdditivity();
      public void setAdditivity(boolean additive);
    

ConsoleAppender

鍙互浣跨敤ConsoleAppender瀵硅薄鎶婃棩蹇楄緭鍑哄埌鎺у埗鍙般傛瘡涓?TT>ConsoleAppender閮芥湁涓涓?TT>target錛岃〃紺哄畠鐨勮緭鍑虹洰鐨勫湴銆傚畠鍙互鏄?TT>System.out錛屾爣鍑嗚緭鍑鴻澶囷紙緙撳啿鏄劇ず灞忥級錛涙垨鑰呮槸System.err錛屾爣鍑嗛敊璇澶囷紙涓嶇紦鍐叉樉紺哄睆錛夈?TT>ConsoleAppender鐨勪嬌鐢ㄦ柟娉曞弬鑰冨涓婣PI :.

        

        ------ Log4j APIs : class ConsoleAppender extends WriterAppender ------
        
      
        
        // 鏋勯犳柟娉曪紝浣跨敤涓涓狶ayout瀵硅薄鏋勯犱竴涓狢onsoleAppender瀵硅薄 :.
        // 榛樿鎯呭喌涓嬶紝ConsoleAppender鐨則arget鏄疭ystem.out :.
        
        public ConsoleAppender(Layout layout);
        
        // 鏋勯犳柟娉曪紝浣跨敤涓涓狶ayout瀵硅薄鍜屼竴涓猼arget瀛楃涓叉瀯閫燙onsoleAppender瀵硅薄 :.
        // target鐨勫彲鑳藉彇鍊間負ConsoleAppender.SYSTEM_OUT鍜孋onsoleAppender.SYSTEM_ERR :.
        
        public ConsoleAppender(Layout layout, String target);
      


FileAppender

鍙互浣跨敤FileAppender瀵硅薄鎶婃棩蹇楄緭鍑哄埌涓涓寚瀹氱殑鏃ュ織鏂囦歡涓幓銆備嬌鐢ㄦ柟娉曞彲浠ュ弬鑰冨涓嬬殑API :.

        

        ------ Log4j APIs : class FileAppender extends WriterAppender ------
        
      
        
        // 鏋勯犳柟娉曪紝浣跨敤涓涓狶ayout瀵硅薄鍜屾棩蹇楁枃浠跺悕鏋勯犱竴涓狥ileAppender瀵硅薄 :.
        
        public FileAppender(Layout layout, String filename)
            throws IOException;
        public FileAppender(Layout layout, String filename, boolean append)
            throws IOException;
      


RollingFileAppender

鍙互浣跨敤FileAppender鐨勫瓙綾?TT>RollingFileAppender瀵硅薄錛屾妸鏃ュ織杈撳嚭鍒頒竴涓寚瀹氱殑鏃ュ織鏂囦歡涓備笉鍚岀殑鏄鏃ュ織鏂囦歡鐨勫ぇ灝忓彈鍒伴檺鍒訛紝褰撴棩蹇楀唴瀹硅秴鍑烘渶澶х殑灝哄鏃訛紝璇ユ枃浠跺皢鍚戜笂婊氬姩錛堟渶鑰佺殑鏃ュ織琚摝闄わ級銆傝繕鍙互鍦ㄨ綾誨璞′腑鎸囧畾涓烘棩蹇楁枃浠跺仛澶氬皯涓浠姐傚叿浣撲嬌鐢ㄦ柟娉曞弬鑰冨涓婣PI :.

        

        ------ Log4j APIs : class RollingFileAppender extends FileAppender ------
        
      
        
        // 鏋勯犳柟娉曪紝浣跨敤涓涓狶ayout瀵硅薄鍜屾棩蹇楁枃浠跺悕鏋勯犱竴涓猂ollingFileAppender瀵硅薄 :.
        
        public RollingFileAppender(Layout layout, String filename)
            throws IOException;
        public RollingFileAppender(Layout layout, String filename, boolean append)
            throws IOException;
        
        // 鑾峰緱鍜岃緗棩蹇楀浠芥枃浠剁殑涓暟 :.
        
        public int getMaxBackupIndex();
        public void setMaxBackupIndex(int index);
        
        // 鑾峰緱鍜岃緗粴鍔ㄦ棩蹇楁枃浠剁殑鏈澶у昂瀵?:.
        
        public long getMaximumFileSize();
        public void setMaximumFileSize(long size);
      



Layout錛氭棩蹇楁牸寮忓寲鍣?/B>

姣忎釜appender閮藉拰涓涓猯ayout鐩歌仈緋伙紱layout鐨勪換鍔℃槸鏍煎紡鍖栫敤鎴風殑logging request錛宎ppender鐨勪換鍔℃槸鎶妉ayout鏍煎紡鍖栧ソ鐨勮緭鍑哄唴瀹歸佸線鎸囧畾鐨勭洰鐨勫湴銆?/P>
PatternLayout

PatternLayout鏄疞ayout鐨勪竴涓瓙綾伙紝鐢ㄦ潵浣跨敤綾諱技C璇█鐨?TT>printf鍑芥暟涓嬌鐢ㄧ殑鏍煎紡鎺у埗瀛楃涓叉潵鎺у埗鏃ュ織鐨勮緭鍑烘牸寮忋備嬌鐢ㄦ柟娉曞弬鑰冨涓婣PI :.

        

        ------ Log4j APIs : class PatternLayout extends Layout ------
        
      
        
        // 鏃犲弬鏁版瀯閫犳柟娉曪紝浣跨敤DEFAULT_CONVERSION_PATTERN鏋勯犱竴涓狿atternLayout :.
        // 娉ㄦ剰錛?/B>DEFAULT_CONVERSION_PATTERN涓?%m%n"錛屽彧鎵撳嵃娑堟伅淇℃伅 :.
        
        public PatternLayout();
        
        // 鏋勯犳柟娉曪紝浣跨敤鑷畾涔夌殑pattern鏋勯犱竴涓狿atternLayout :.
        
        public PatternLayout(String pattern);
        
        // 鑾峰緱鍜岃緗甈atternLayout瀵硅薄鐨勬棩蹇梡attern :.
        
        public String getConversionPattern();
        public void setConversionPattern(String pattern);
      


patterns in PatternLayout

鏈畬寰呯畫



Configuration錛氶厤緗?/B>

瀵筶og4j鐜鐨勯厤緗氨鏄root logger鐨勯厤緗紝鍖呮嫭鎶妑oot logger璁劇疆涓哄摢涓駭鍒?level)錛涗負瀹冨鍔犲摢浜沘ppender錛岀瓑絳夈傝繖浜涘彲浠ラ氳繃璁劇疆緋葷粺灞炴х殑鏂規硶鏉ラ殣寮忓湴瀹屾垚錛屼篃鍙互鍦ㄧ▼搴忛噷璋冪敤XXXConfigurator.configure()鏂規硶鏉ユ樉寮忓湴瀹屾垚銆?/P>
榛樿鐨刲og4j鍒濆鍖栬繃紼?/B>

Logger綾葷殑闈欐佸垵濮嬪寲鍧?static initialization block)涓log4j鐨勭幆澧冨仛榛樿鐨勫垵濮嬪寲銆?B>娉ㄦ剰錛?/B>濡傛灉紼嬪簭鍛樺凡緇忛氳繃璁劇疆緋葷粺灞炴х殑鏂規硶鏉ラ厤緗簡log4j鐜錛屽垯涓嶉渶瑕佸啀鏄懼紡鍦拌皟鐢?TT>XXXConfigurator.configure()鏂規硶鏉ラ厤緗甽og4j鐜浜嗐?/P>

Logger鐨勯潤鎬佸垵濮嬪寲鍧楀湪瀹屾垚鍒濆鍖栬繃紼嬫椂灝嗘鏌ヤ竴緋誨垪log4j瀹氫箟鐨勭郴緇熷睘鎬с傚畠鎵鍋氱殑浜嬫儏濡備笅錛?

  1. 媯鏌ョ郴緇熷睘鎬?TT>log4j.defaultInitOverride錛屽鏋滆灞炴ц璁劇疆涓篺alse錛屽垯鎵ц鍒濆鍖栵紱鍚﹀垯錛堝彧瑕佷笉鏄痜alse錛屾棤璁烘槸浠涔堝鹼紝鐢氳嚦娌℃湁鍊鹼紝閮芥槸鍚﹀垯錛夛紝璺寵繃鍒濆鍖栥?
  2. 鎶婄郴緇熷睘鎬?TT>log4j.configuration鐨勫艱祴緇欏彉閲弐esource銆傚鏋滆緋葷粺鍙橀噺娌℃湁琚畾涔夛紝鍒欐妸resource璧嬪間負"log4j.properties"銆?B>娉ㄦ剰錛?/B>鍦╝pache鐨刲og4j鏂囨。涓緩璁嬌鐢ㄥ畾涔?TT>log4j.configuration緋葷粺灞炴х殑鏂規硶鏉ヨ緗粯璁ょ殑鍒濆鍖栨枃浠舵槸涓涓ソ鏂規硶銆?
  3. 璇曞浘鎶妑esource鍙橀噺杞寲鎴愪負涓涓?TT>URL瀵硅薄url銆傚鏋滀竴鑸殑杞寲鏂規硶琛屼笉閫氾紝灝辮皟鐢?TT>org.apache.log4j.helpers.Loader.getResource(resource, Logger.class)鏂規硶鏉ュ畬鎴愯漿鍖栥?
  4. 濡傛灉url浠?.html"緇撳熬錛屽垯璋冪敤鏂規硶DOMConfigurator.configure(url)鏉ュ畬鎴愬垵濮嬪寲錛涘惁鍒欙紝鍒欒皟鐢ㄦ柟娉?TT>PropertyConfigurator.configure(url)鏉ュ畬鎴愬垵濮嬪寲銆傚鏋?TT>url鎸囧畾鐨勮祫婧愪笉鑳借鑾峰緱錛屽垯璺沖嚭鍒濆鍖栬繃紼嬨?


BasicConfigurator.configure()

BasicConfigurator.configure()鏂規硶浣跨敤鏈綆鐨勬柟娉曢厤緗甽og4j鐜銆?B>娉細鎵璋撻厤緗甽og4j鐜錛屽氨鏄寚閰嶇疆root logger錛屽洜涓烘墍鏈夊叾瀹冪殑logger閮芥槸root logger鐨勫悗浠o紝鎵浠ュ畠浠紙榛樿鎯呭喌涓嬶級閮藉皢緇ф壙root logger鐨勬ц川銆?/P>

BasicConfigurator.configure()瀹屾垚鐨勪換鍔℃槸錛?

  1. 鐢ㄩ粯璁attern鍒涘緩PatternLayout瀵硅薄p錛?BR>PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
  2. 鐢╬鍒涘緩ConsoleAppender瀵硅薄a錛岀洰鏍囨槸system.out錛屾爣鍑嗚緭鍑鴻澶囷細
    ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
  3. 涓簉oot logger澧炲姞涓涓狢onsoleAppender p錛?BR>rootLogger.addAppender(p);
  4. 鎶妑oot logger鐨刲og level璁劇疆涓篋EBUG綰у埆錛?BR>rootLogger.setLevel(Level.DEBUG);


xml鏍煎紡鐨刲og4j閰嶇疆鏂囦歡姒傝堪

xml鏍煎紡鐨刲og4j閰嶇疆鏂囦歡闇瑕佷嬌鐢?TT>org.apache.log4j.html.DOMConfigurator.configure()鏂規硶鏉ヨ鍏ャ傚xml鏂囦歡鐨勮娉曞畾涔夊彲浠ュ湪log4j鐨勫彂甯冨寘涓壘鍒幫細org/apache/log4j/xml/log4j.dtd銆?/P>
log4j鐨剎ml閰嶇疆鏂囦歡鐨勬爲鐘剁粨鏋?/B>

log4j鐨剎ml閰嶇疆鏂囦歡鐨勬爲鐘剁粨鏋勫涓嬫墍紺猴紝娉ㄦ剰涓嬪浘鍙樉紺轟簡甯哥敤鐨勯儴鍒嗐?:.

          xml declaration and dtd
            |
          log4j:configuration
            |
            +-- appender (name, class)
            |     |
            |     +-- param (name, value)
            |     +-- layout (class)
            |           |
            |           +-- param (name, value)
            +-- logger (name, additivity)
            |     |
            |     +-- level (class, value)
            |     |     |
            |     |     +-- param (name, value)
            |     +-- appender-ref (ref)
            +-- root
                  |
                  +-- param (name, class)
                  +-- level
                  |     |
                  |     +-- param (name, value)
                  +-- appender-ref (ref)  
        


xml declaration and dtd

xml閰嶇疆鏂囦歡鐨勫ご閮ㄥ寘鎷袱涓儴鍒嗭細xml澹版槑鍜宒td澹版槑銆傚ご閮ㄧ殑鏍煎紡濡備笅錛?:.

          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
        


log4j:configuration (root element)

  1. xmlns:log4j [#FIXED attribute] : 瀹氫箟log4j鐨勫悕瀛楃┖闂達紝鍙栧畾鍊?TT>"http://jakarta.apache.org/log4j/"
  2. appender [* child] : 涓涓猘ppender瀛愬厓绱犲畾涔変竴涓棩蹇楄緭鍑虹洰鐨勫湴
  3. logger [* child] : 涓涓猯ogger瀛愬厓绱犲畾涔変竴涓棩蹇楀啓鍑哄櫒
  4. root [? child] : root瀛愬厓绱犲畾涔変簡root logger


appender

appender鍏冪礌瀹氫箟涓涓棩蹇楄緭鍑虹洰鐨勫湴銆?/P>

  1. name [#REQUIRED attribute] : 瀹氫箟appender鐨勫悕瀛楋紝浠ヤ究琚悗鏂囧紩鐢?
  2. class [#REQUIRED attribute] : 瀹氫箟appender瀵硅薄鎵灞炵殑綾葷殑鍏ㄥ悕
  3. param [* child] : 鍒涘緩appender瀵硅薄鏃朵紶閫掔粰綾繪瀯閫犳柟娉曠殑鍙傛暟
  4. layout [? child] : 璇ppender浣跨敤鐨刲ayout瀵硅薄


layout

layout鍏冪礌瀹氫箟涓庢煇涓涓猘ppender鐩歌仈緋葷殑鏃ュ織鏍煎紡鍖栧櫒銆?/P>

  1. class [#REQUIRED attribute] : 瀹氫箟layout瀵硅薄鎵灞炵殑綾葷殑鍏ㄥ悕
  2. param [* child] : 鍒涘緩layout瀵硅薄鏃朵紶閫掔粰綾繪瀯閫犳柟娉曠殑鍙傛暟


logger

logger鍏冪礌瀹氫箟涓涓棩蹇楄緭鍑哄櫒銆?/P>

  1. name [#REQUIRED attribute] : 瀹氫箟logger鐨勫悕瀛楋紝浠ヤ究琚悗鏂囧紩鐢?
  2. additivity [#ENUM attribute] : 鍙栧間負"true"錛堥粯璁わ級鎴栬?false"錛屾槸鍚︾戶鎵跨埗logger鐨勫睘鎬?
  3. level [? child] : 瀹氫箟璇ogger鐨勬棩蹇楃駭鍒?
  4. appender-ref [* child] : 瀹氫箟璇ogger鐨勮緭鍑虹洰鐨勫湴


root

root鍏冪礌瀹氫箟鏍規棩蹇楄緭鍑哄櫒root logger銆?/P>

  1. param [* child] : 鍒涘緩root logger瀵硅薄鏃朵紶閫掔粰綾繪瀯閫犳柟娉曠殑鍙傛暟
  2. level [? child] : 瀹氫箟root logger鐨勬棩蹇楃駭鍒?
  3. appender-ref [* child] : 瀹氫箟root logger鐨勮緭鍑虹洰鐨勫湴


level

level鍏冪礌瀹氫箟logger瀵硅薄鐨勬棩蹇楃駭鍒?/P>

  1. class [#IMPLIED attribute] : 瀹氫箟level瀵硅薄鎵灞炵殑綾伙紝榛樿鎯呭喌涓嬫槸"org.apache.log4j.Level綾?
  2. value [#REQUIRED attribute] : 涓簂evel瀵硅薄璧嬪箋傚彲鑳界殑鍙栧間粠灝忓埌澶т緷嬈′負"all"銆?debug"銆?info"銆?warn"銆?error"銆?fatal"鍜?off"銆傚綋鍊間負"off"鏃惰〃紺烘病鏈変換浣曟棩蹇椾俊鎭杈撳嚭
  3. param [* child] : 鍒涘緩level瀵硅薄鏃朵紶閫掔粰綾繪瀯閫犳柟娉曠殑鍙傛暟


appender-ref

appender-ref鍏冪礌寮曠敤涓涓猘ppender鍏冪礌鐨勫悕瀛楋紝涓簂ogger瀵硅薄澧炲姞涓涓猘ppender銆?/P>

  1. ref [#REQUIRED attribute] : 涓涓猘ppender鍏冪礌鐨勫悕瀛楃殑寮曠敤
  2. appender-ref鍏冪礌娌℃湁瀛愬厓绱?


param

param鍏冪礌鍦ㄥ垱寤哄璞℃椂涓虹被鐨勬瀯閫犳柟娉曟彁渚涘弬鏁般傚畠鍙互鎴愪負appender銆?TT>layout銆?TT>filter銆?TT>errorHandler銆?TT>level銆?TT>categoryFactory鍜?TT>root絳夊厓绱犵殑瀛愬厓绱犮?/P>

  1. name and value [#REQUIRED attributes] : 鎻愪緵鍙傛暟鐨勪竴緇勫悕鍊煎
  2. param鍏冪礌娌℃湁瀛愬厓绱?



鍦▁ml鏂囦歡涓厤緗產ppender鍜宭ayout

鍒涘緩涓嶅悓鐨凙ppender瀵硅薄鎴栬呬笉鍚岀殑Layout瀵硅薄瑕佽皟鐢ㄤ笉鍚岀殑鏋勯犳柟娉曘傚彲浠ヤ嬌鐢╬aram瀛愬厓绱犳潵璁懼畾涓嶅悓鐨勫弬鏁板箋?/P>
鍒涘緩ConsoleAppender瀵硅薄

ConsoleAppender鐨勬瀯閫犳柟娉曚笉鎺ュ彈鍏跺畠鐨勫弬鏁般?:.

          ... ... ... ...
          <appender name="console.log" class="org.apache.log4j.ConsoleAppender">
            <layout ... >
              ... ...
            </layout>
          </appender>
          ... ... ... ...
        


鍒涘緩FileAppender瀵硅薄

鍙互涓篎ileAppender綾葷殑鏋勯犳柟娉曚紶閫掍袱涓弬鏁幫細File琛ㄧず鏃ュ織鏂囦歡鍚嶏紱Append琛ㄧず濡傛枃浠跺凡瀛樺湪錛屾槸鍚︽妸鏃ュ織榪藉姞鍒版枃浠跺熬閮紝鍙兘鍙栧間負"true"鍜?false"錛堥粯璁わ級銆?:.

          ... ... ... ...
          <appender name="file.log" class="org.apache.log4j.FileAppender">
            <param name="File" value="/tmp/log.txt" />
            <param name="Append" value="false" />
            <layout ... >
              ... ...
            </layout>
          </appender>
          ... ... ... ...
        


鍒涘緩RollingFileAppender瀵硅薄

闄や簡File鍜?TT>Append浠ュ錛岃繕鍙互涓篟ollingFileAppender綾葷殑鏋勯犳柟娉曚紶閫掍袱涓弬鏁幫細MaxBackupIndex澶囦喚鏃ュ織鏂囦歡鐨勪釜鏁幫紙榛樿鏄?涓級錛?TT>MaxFileSize琛ㄧず鏃ュ織鏂囦歡鍏佽鐨勬渶澶у瓧鑺傛暟錛堥粯璁ゆ槸10M錛夈?:.

          ... ... ... ...
          <appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender">
            <param name="File" value="/tmp/rollingLog.txt" />
            <param name="Append" value="false" />
            <param name="MaxBackupIndex" value="2" />
            <param name="MaxFileSize" value="1024" />
            <layout ... >
              ... ...
            </layout>
          </appender>
          ... ... ... ...
        


鍒涘緩PatternLayout瀵硅薄

鍙互涓篜atternLayout綾葷殑鏋勯犳柟娉曚紶閫掑弬鏁癈onversionPattern銆?:.

          ... ... ... ...
          <layout class="org.apache.log4j.PatternLayout>
            <param name="Conversion" value="%d [%t] %p - %m%n" />
          </layout>
          ... ... ... ...
        



鎴戣嚜宸辯殑涓涓嬌鐢▁ml鏂囦歡閰嶇疆log4j鐜鐨勫緢綆鍗曠殑渚嬪瓙

涓篧SOTA欏圭洰寮鍙慾ava web start鐨勮儢瀹㈡埛绔椂錛屼嬌鐢ㄤ簡濡備笅鐨剎ml鏂囦歡閰嶇疆log4j鐜錛堟枃浠跺悕涓簑sota-rc.log4j.html錛夛細:.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  
  <!-- ================================================================= -->
  <!--                     a rolling file appender                       -->
  <!-- ================================================================= -->
  
  <appender name="wsota-rc.file.log" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="/tmp/wsota-rc.log" />
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %p - %m%n" />
    </layout>
  </appender>
  
  <!-- ================================================================= -->
  <!--                       a console appender                          -->
  <!--     debug can be turned off by setting level of root to "off"     -->
  <!-- ================================================================= -->
  
  <appender name="wsota-rc.console.log" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %p - %m%n" />
    </layout>
  </appender>
  
  <!--  use this to turn on debug to a rolling file. -->
  
  <root>
    <level value="debug" />
    <appender-ref ref="wsota-rc.file.log" />
  </root>
  
  <!--  use this to turn on debug to console. -->
  <!--
  <root>
    <level value="off" />
    <appender-ref ref="wsota-rc.console.log" />
  </root>
  -->
  
  
  <!--  use this to turn off debug. -->
  <!--
  <root>
    <level value="off" />
    <appender-ref ref="wsota-rc.console.log" />
  </root>
  -->
  
</log4j:configuration>
      

鍦ㄨ儢瀹㈡埛紼嬪簭涓嬌鐢ㄤ簡濡備笅浠g爜鏉ヤ嬌鐢ㄥ閮▁ml鏂囦歡閰嶇疆log4j鐜錛屾敞鎰忚浠g爜孌典綅浜庣▼搴忕殑main class鐨勯潤鎬佸垵濮嬪寲鍧椾腑錛屽惈鏈変互涓嬩唬鐮佺殑綾誨拰xml閰嶇疆鏂囦歡鍦ㄥ悓涓涓洰褰曚笅錛?.

  import org.apache.log4j.html.DOMConfigurator;
  
  public class SapFrame extends JFrame {
      static {
          DOMConfigurator.configure(SapFrame.class.getResource("wsota-rc.log4j.html"));
      }
      ... ... ... ...
  }
      



Log4j鐨勭紪鐮佷範鎯?/B>

  1. 璁╂瘡涓被閮芥嫢鏈変竴涓猵rivate static鐨凩ogger瀵硅薄錛岀敤鏉ヨ緭鍑鴻綾諱腑鐨勫叏閮ㄦ棩蹇椾俊鎭?
  2. 浣跨敤xml鏂囦歡鏉ュ畬鎴愬log4j鐜鐨勯厤緗傚湪欏圭洰鐨刴ain class涓殑闈欐佸垵濮嬪寲鍧楅噷鏀緇og4j鐜鐨勯厤緗唬鐮併傛敞鎰忥細鍦ㄤ竴涓」鐩腑錛宭og4j鐜鍙渶瑕佽閰嶇疆涓嬈★紝鑰屼笉鏄湪姣忎釜浣跨敤浜唋ogger鐨勭被閲岄兘闇瑕佽皟鐢ㄤ竴嬈?
  3. 鐢?TT>MyClass.class浣滀負鍙傛暟鍒涘緩璇ョ被鐨勯潤鎬丩ogger瀵硅薄
  4. 琛ュ厖涓?..


鍙傝冭祫鏂?/B>

  1. Log4j涓婚〉涓婄殑鐩稿叧鏂囨。錛?A >http://jakarta.apache.org/log4j/docs
  2. Ashley J.S Mills鐨刲og4j鏁欑▼錛?A >http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/log4j/log4j.html


Java&Inter 2005-11-30 13:33 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 红杏亚洲影院一区二区三区| 美国免费高清一级毛片| 亚洲婷婷国产精品电影人久久| 99在线免费观看视频| 国产精品青草视频免费播放| 亚洲国产AV无码一区二区三区| 久久精品国产亚洲AV嫖农村妇女| 国产偷窥女洗浴在线观看亚洲 | 久久精品国产亚洲夜色AV网站| 免费国产一级特黄久久| 久久不见久久见免费影院| 无码国产精品一区二区免费vr| 最近的2019免费中文字幕| 成人a毛片免费视频观看| 国产精品亚洲lv粉色| 亚洲中文字幕乱码AV波多JI| 亚洲男人电影天堂| 无码乱人伦一区二区亚洲| 国产国拍亚洲精品mv在线观看| 亚洲一区日韩高清中文字幕亚洲| 国产成人涩涩涩视频在线观看免费| 免费a级毛片无码a∨蜜芽试看| 永久免费av无码网站韩国毛片 | 亚洲丁香色婷婷综合欲色啪| 欧洲亚洲国产清在高| 亚洲精品无码MV在线观看| 狠狠亚洲婷婷综合色香五月排名| 爱情岛论坛网亚洲品质自拍| 亚洲日本一区二区一本一道| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲阿v天堂在线2017免费| 乱淫片免费影院观看| 大片免费观看92在线视频线视频| 无人视频在线观看免费播放影院| 另类小说亚洲色图| 欧洲乱码伦视频免费国产| 精品无码一级毛片免费视频观看 | 亚洲国产精品成人| 国产亚洲精品不卡在线| 一本色道久久综合亚洲精品| 久久国产亚洲电影天堂|