ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>成人香蕉社区,欧美3p视频在线观看,毛片免费在线http://www.aygfsteel.com/asdtiang/category/43543.html交æµå¦ä¹ (f¨¤n)JAVA zh-cnTue, 12 Jan 2010 09:55:35 GMTTue, 12 Jan 2010 09:55:35 GMT60- java log4j使用http://www.aygfsteel.com/asdtiang/archive/2010/01/12/309181.htmlasdtiangasdtiangTue, 12 Jan 2010 09:22:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/01/12/309181.htmlhttp://www.aygfsteel.com/asdtiang/comments/309181.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/01/12/309181.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/309181.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/309181.html
1ã€å®šä¹‰é…¾|®æ–‡ä»?
首先使用é…置文äšgž®†ä‹Éæˆ‘ä»¬çš„åº”ç”¨ç¨‹åºæ›´åŠ çµ‹z»é…¾|®log日志输出方å¼åŒ…括输出优先¾U§ã€è¾“出目的地ã€è¾“å‡ºæ ¼å¼ã€‚Log4j支æŒä¸¤ç§é…置文äšgæ ¼å¼åQŒä¸€¿U是
XMLæ ¼å¼çš„æ–‡ä»Óž¼Œä¸€¿U是Javaç‰ÒŽ(gu¨©)€§æ–‡ä»¶log4j.propertiesåQˆé”®=å€û|¼‰ã€‚下é¢å°†ä»‹ç»ä½¿ç”¨log4j.propertiesæ–‡äšgä½œäØ“é…ç½®æ–?
ä»¶çš„æ–ÒŽ(gu¨©)³•åQ?
â‘ é…¾|®æ ¹LoggeråQŒå…¶è¯æ³•为:0
log4j.rootLogger = [ level ] , appenderName, appenderName, …
å…¶ä¸åQŒlevel
是日志记录的优先¾U§ï¼Œåˆ†äØ“OFFã€FATALã€ERRORã€WARNã€INFOã€DEBUGã€ALL或者自定义的çñ”别。Log4j廸™®®åªä‹É用四个çñ”别,ä¼?
å…ˆçñ”从高åˆîC½Žåˆ†åˆ«æ˜¯ERRORã€WARNã€INFOã€DEBUG。通过在这里定义的¾U§åˆ«åQŒæ?zh¨¨n)¨å¯ä»¥æŽ§åˆ¶åˆ°åº”用程åºä¸ç›¸åº”¾U§åˆ«çš„æ—¥å¿—ä¿¡æ¯çš„开兟뀂比如在˜q™é‡Œå®?
义了INFO¾U§åˆ«åQŒåˆ™åº”用½E‹åºä¸æ‰€æœ‰DEBUG¾U§åˆ«çš„æ—¥å¿—ä¿¡æ¯å°†ä¸è¢«æ‰“å°å‡ºæ¥ã€?
appenderNamež®±æ˜¯æŒ‡å®šæ—¥å¿—ä¿¡æ¯è¾“出到哪个地æ–V€‚å¯åŒæ—¶æŒ‡å®šå¤šä¸ªè¾“出目的地ã€?
â‘¡é…¾|®æ—¥å¿—ä¿¡æ¯è¾“出目的地AppenderåQŒå…¶è¯æ³•为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
å…¶ä¸åQŒLog4jæä¾›çš„appenderæœ‰ä»¥ä¸‹å‡ ¿U:
org.apache.log4j.ConsoleAppenderåQˆæŽ§åˆ¶å°åQ‰ï¼Œ
org.apache.log4j.FileAppenderåQˆæ–‡ä»Óž¼‰åQ?
org.apache.log4j.DailyRollingFileAppenderåQˆæ¯å¤©äñ”生一个日志文ä»Óž¼‰åQ?
org.apache.log4j.RollingFileAppenderåQˆæ–‡ä»¶å¤§ž®åˆ°è¾¾æŒ‡å®šå°ºå¯¸çš„æ—¶å€™äñ”生一个新的文ä»Óž¼‰åQ?
org.apache.log4j.WriterAppenderåQˆå°†æ—¥å¿—ä¿¡æ¯ä»¥æµæ ¼å¼å‘é€åˆ°ä»ÀL„指定的地方)
③酾|®æ—¥å¿—ä¿¡æ¯çš„æ ¼å¼åQˆå¸ƒå±€åQ‰ï¼Œå…¶è¯æ³•䨓åQ?
log4j.appender.appenderName.layout =
fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
å…¶ä¸åQŒLog4jæä¾›çš„layoutæœ‰ä»¥ä¸‹å‡ ¿U:
org.apache.log4j.HTMLLayoutåQˆä»¥HTMLè¡¨æ ¼å½¢å¼å¸ƒå±€åQ‰ï¼Œ
org.apache.log4j.PatternLayoutåQˆå¯ä»¥çµ‹zÕdœ°æŒ‡å®šå¸ƒå±€æ¨¡å¼åQ‰ï¼Œ
org.apache.log4j.SimpleLayoutåQˆåŒ…嫿—¥å¿—ä¿¡æ¯çš„¾U§åˆ«å’Œä¿¡æ¯å—½W¦ä¸²åQ‰ï¼Œ
org.apache.log4j.TTCCLayoutåQˆåŒ…嫿—¥å¿—äñ”生的旉™—´ã€çº¿½E‹ã€ç±»åˆ«ç‰½{‰ä¿¡æ¯ï¼‰
Log4J采用¾cÖM¼¼Cè¯è¨€ä¸çš„printfå‡½æ•°çš„æ‰“å°æ ¼å¼æ ¼å¼åŒ–日志信æ¯åQŒæ‰“å°å‚数如下: %m 输出代ç 䏿Œ‡å®šçš„æ¶ˆæ¯
%p 输出优先¾U§ï¼Œå³DEBUGåQŒINFOåQŒW(xu¨¦)ARNåQŒERRORåQŒFATAL
%r 输出自应用å¯åŠ¨åˆ°è¾“å‡ºè¯¥logä¿¡æ¯è€—费的毫¿U’æ•°
%c 输出所属的¾cÈ›®åQŒé€šå¸¸ž®±æ˜¯æ‰€åœ¨ç±»çš„å…¨å?
%t 输出产生该日志事件的¾U¿ç¨‹å?
%n 输出一个回车æ¢è¡Œç¬¦åQŒW(xu¨¦)indowsòq›_°ä¸?#8220;\r\n”åQŒUnixòq›_°ä¸?#8220;\n”
%d 输出日志旉™—´ç‚¹çš„æ—¥æœŸæˆ–æ—¶é—ß_¼Œé»˜è®¤æ ¼å¼ä¸ºISO8601åQŒä¹Ÿå¯ä»¥åœ¨å…¶åŽæŒ‡å®šæ ¼å¼ï¼Œæ¯”如åQ?d{yyy MMM dd
HH:mm:ss,SSS}åQŒè¾“出类ä¼û|¼š2002òq?0æœ?8æ—?22åQ?0åQ?8åQ?21
%l 输出日志事äšgçš„å‘生佾|®ï¼ŒåŒ…括¾cÈ›®åã€å‘生的¾U¿ç¨‹åQŒä»¥åŠåœ¨ä»£ç ä¸çš„行数。ä‹D例:Testlog4.main(TestLog4.java:10)
2ã€åœ¨ä»£ç ä¸ä‹É用Log4j
①得到记录器
使用Log4jåQŒç¬¬ä¸€æ¥å°±æ˜¯èŽ·å–æ—¥å¿—记录器åQŒè¿™ä¸ªè®°å½•器ž®†è´Ÿè´£æŽ§åˆ¶æ—¥å¿—ä¿¡æ¯ã€‚å…¶è¯æ³•为:
public static Logger getLogger( String name)
通过指定的åå—获得记录器åQŒå¦‚果必è¦çš„è¯ï¼Œåˆ™äØ“˜q™ä¸ªåå—创å¾ä¸€ä¸ªæ–°çš„记录器。Nameä¸€èˆ¬å–æœ¬ç±»çš„åå—,比如åQ?
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName
() )
②读å–é…¾|®æ–‡ä»?
当获得了日志记录器之åŽï¼Œ½W¬äºŒæ¥å°†é…ç½®Log4j环境åQŒå…¶è¯æ³•为:
BasicConfigurator.configure ()åQ?自动快速地使用¾~ºçœLog4j环境ã€?
PropertyConfigurator.configure ( String configFilename)
åQšè¯»å–ä‹É用Java的特性文件编写的é…置文äšgã€?
例:PropertyConfigurator.configure(".\\src\\log4j.properties")
DOMConfigurator.configure ( String filename ) åQšè¯»å–XMLå½¢å¼çš„é…¾|®æ–‡ä»¶ã€?
â‘¢æ’入记录信æ¯ï¼ˆæ ¼å¼åŒ–日志信æ¯ï¼‰
å½“ä¸Šä¸¤ä¸ªå¿…è¦æ¥éª¤æ‰§è¡Œå®Œæ¯•åQŒå°±å¯è½»æ‘Öœ°ä½¿ç”¨ä¸åŒä¼˜å…ˆ¾U§åˆ«çš„æ—¥å¿—记录è¯å¥æ’入到æ‚(zh¨¨n)¨æƒ³è®°å½•日志的ä“Qä½•åœ°æ–¹ï¼Œå…¶è¯æ³•如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
log4j范例½E‹åº
下颞®†ä‹É用一个最½Ž€å•的范例½E‹åºæ¥è¿›ä¸€æ¥è¯´æ˜Žlog4jçš„ä‹É用方法。程åºä»£ç 如下:
import org.apache.log4j.*;
public class LogTest {
static Logger logger = Logger.getLogger(LogTest.class.getName());
public static void main(String[] args) {
PropertyConfigurator.configure ( “.\\src\log4j.properties”)åQ?
logger.debug("Debug ...");
logger.info("Info ...");
logger.warn("Warn ...");
logger.error("Error ...");
}
}
½E‹åºè¯´æ˜ŽåQ?
â‘?static Logger logger =
Logger.getLogger(LogTest.class.getName());ž®±æ˜¯åˆ›å¾ä¸€ä¸ªå±žäºŽLogTest¾cÈš„Logger对象åQŒåˆ›å»ºæ—¶è¦?
告知Loggerä½ å½“å‰çš„Class是什么ã€?
â‘?PropertyConfigurator.configure (
“log4j.properties”)ž®±æ˜¯è¯´ä‹É用当å‰å·¥½E‹ç›®å½•下的srcæ–‡äšg夹ä¸çš„log4j.propertiesæ–‡äšgä½œäØ“é…置文äšg。若ž®?
log4j.properties攑֜¨å·¥ç¨‹æ ¹ç›®å½•下也å¯ä¸å†™æ¤å¥åQŒç¨‹åºä¼šè‡ªåŠ¨æ‰‘Öˆ°é…置文äšgã€?
â‘? logger.debugž®±æ˜¯è¾“出debug的信æ¯ï¼Œlogger.infož®±æ˜¯è¾“出æç¤ºä¿¡æ¯åQŒlogger.warnž®±æ˜¯æ˜„¡¤ºè¦å‘Šä¿?
æ¯ï¼Œlogger.errorž®±æ˜¯æ˜„¡¤ºé”™è¯¯ä¿¡æ¯ã€?
䏋颿˜¯é…¾|®æ–‡ä»¶log4j.properties的内容:
log4j.rootCategory=DEBUG, stdoutåQŒR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p
%c - %m%n
½E‹åºè¯´æ˜ŽåQ?
â‘?log4j.rootCategory=DEBUG, stdoutåQŒR
ž®±æ˜¯è¯´æˆ‘è¦æ˜¾½Cºæ‰€æœ‰ä¼˜å…ˆæƒ½{‰æ–¼å’Œé«˜äºŽDebug的信æ¯ã€?
"stdout"åQ?#8221;R”表示我定义了两个输出ç«?éšä¾¿ä»€ä¹ˆåå—都å¥?ã€?
②下é¢çš„三行说stdoutè¾“å‡ºç«¯å…¶å®žæ˜¯æ ‡å‡†è¾“å‡ºConsoleåQŒä¹Ÿž®±æ˜¯å±å¹•ã€‚è¾“å‡ºçš„æ ¼å¼æ˜¯PatternLayout。è{æ¢æ–¹å¼æ˜¯%5p
(%F:%L) -
%m%nåQŒå³å‰äº”æ ¼ç”¨æ¥æ˜¾½CÞZ¼˜å…ˆæƒåQŒå†æ˜„¡¤ºå½“å‰çš„æ–‡ä»¶ååQŒåР当å‰çš„è¡Œæ•°ã€‚æœ€åŽæ˜¯logger.debug()或logger.info()æˆ?
logger.warn()或logger.error()里的信æ¯ã€?n表示回èžR½Iø™¡Œã€?
â‘¢å†åŠ ä¸Šä¸‹é¢å…行则logä¿¡æ¯ä¸å…‰æ˜„¡¤ºåœ¨å±òq•上åQŒè€Œä¸”ž®†è¢«ä¿å˜åœ¨ä¸€ä¸ªå«"log.txt"的文仉™‡ŒåQŒæ–‡ä»¶æœ€å¤§äØ“100KB。如果文件大ž®è¶…˜q?00KBåQ?
æ–‡äšg会被备䆾æˆ?log.txt.1"åQŒæ–°çš?log.txt"¾l§ç®‹è®°å½•logä¿¡æ¯ã€?
æŽ¥ä¸‹æ¥æˆ‘们å¯ä»¥æ”¹å˜log4j.propertiesåQŒè€Œä¸éœ€é‡æ–°¾~–译ž®±å¯ä»¥æŽ§åˆ¶logä¿¡æ¯æ˜¯å¦æ˜„¡¤ºã€logä¿¡æ¯çš„输出端¾cÕdž‹ã€è¾“出方å¼ã€è¾“å‡ºæ ¼å¼ï¼Œ½{?
½{‰ã€‚ä‹D例如下:
①在log4j.propertiesæ–‡äšg里把"log4j.rootCategory=DEBUG,stdout,R"改写
æˆ?log4j.rootCategory=OFF, stdout,R"åQŒè¿™æ äh‰€æœ‰çš„logä¿¡æ¯éƒ½ä¸ä¼šæ˜¾½CÞZº†åQ›è§£å†³äº†æœ¬æ–‡å¼€å§‹æå‡ºçš„问题ã€?
②在log4j.propertiesæ–‡äšg里把"log4j.rootCategory=DEBUG,stdout,R"改写
æˆ?log4j.rootCategory=INFO, stdout,R"åQŒè¿™æ ·åªæ˜„¡¤ºINFO, WARN,
ERRORçš„logä¿¡æ¯åQŒè€ŒDEBUGä¿¡æ¯ä¸ä¼šè¢«æ˜¾½Cºï¼›
在web½E‹åºä¸ä‹É用log4j注æ„问题
1�nbsp;
ç”׃ºŽjsp或servletåœ¨æ‰§è¡ŒçŠ¶æ€æ—¶æ²¡æœ‰å½“å‰è·¯å¾„概念åQŒæ‰€æœ‰ä‹É用PropertyConfigurator.configureåQˆStringåQ‰è¯å?
找log4j.propertiesæ–‡äšg时覾l™å‡ºç›¸å¯¹äºŽå½“å‰jsp或servletçš„èµ\径è{化æˆä¸ÞZ¸€ä¸ªç»å¯¹çš„æ–‡äšg¾pÈ»Ÿè·¯å¾„。方法是使用
servletcontext.getrealpath(string)è¯å¥ã€‚例åQ?
//得到当å‰jsp路径
String prefix = getServletContext().getRealPath("/");
//è¯Õd–log4j.properties
PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");
2ã€ç›¸åº”çš„log4j.properties讄¡½®æŸä¸ªå±žæ€§æ—¶ä¹Ÿè¦åœ¨ç¨‹åºä¸è®„¡½®¾l对路径。例åQ?
log4j.appender.R.File属性设¾|®æ—¥å¿—æ–‡ä»¶å˜æ”¾ä½¾|®ã€‚我们å¯ä»¥ç”¨è¯Õd†™.propertiesé…置文äšg的方法进行絋z»è®¾¾|®ã€?

]]> - JAVA 日志¾pÈ»Ÿ½Ž€ä»?-è½?/title><link>http://www.aygfsteel.com/asdtiang/archive/2010/01/12/309180.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 12 Jan 2010 09:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/asdtiang/archive/2010/01/12/309180.html</guid><wfw:comment>http://www.aygfsteel.com/asdtiang/comments/309180.html</wfw:comment><comments>http://www.aygfsteel.com/asdtiang/archive/2010/01/12/309180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/asdtiang/comments/commentRss/309180.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/asdtiang/services/trackbacks/309180.html</trackback:ping><description><![CDATA[<p style="text-indent: 24pt;" class="0"><span style="font-size: 12pt;"><span>æ—?
志,æºäºŽlogåQŒæœ‰èˆªæ“væ—¥å¿—çš„æ„æ€ã€‚指记录‹¹·å‘˜è®°å½•æ¯å¤©çš„行½E‹ï¼Œç”Ÿæ´»åŠå‘生的事äšg。在软äšgå¼€å‘领域,用æ¥ç›‘控代ç ä¸å˜é‡å˜åŒ–,跟踪
ä»£ç ˜q行的轨˜q¹ï¼Œåœ¨å¼€å‘çŽ¯å¢ƒä¸æ‹…å½“è°ƒè¯•å™¨ä½œç”¨ï¼Œå‘æŽ§åˆ¶å°æˆ–文件输å‡ÞZ¿¡æ¯ã€?/span></span></p>
<p style="text-indent: 24pt;" class="0"> </p>
<p style="text-indent: 24pt;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;"><span>å‡ ä¹Žæ‰€æœ‰çš„è½¯äšgå¼€å‘è¯a€åQˆåã^åŽÍ¼‰éƒ½æœ‰è‡ªå·±çš„æ—¥å¿—ç³»¾lŸï¼Œ<span id="wmqeeuq" class="hilite1">java</span>åQ?netåQŒrubyåQŒphp½{‰ã€‚在<span id="wmqeeuq" class="hilite1">java</span>é¢?
域,å˜åœ¨å¤§é‡çš„æ—¥å¿—组ä»Óž¼Œ</span></span><span><a _fcksavedurl="http://www.open-open.com/open50229.htm"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15">open-open</span></a></span><span style="font-size: 12pt;"><span>æ”?录了21个日志组件ã€?/span></span></span></span></p>
<p style="text-indent: 24pt;" class="0"><span style="font-size: 12pt;"><span>ä»?
功能上讲åQŒè¿™äº›å¯ä»¥åˆ†ä¸ÞZ¸‰¾c»ï¼Œä¸€æ˜¯æ—¥å¿—å·¥å…ïL(f¨¥ng)±»åQŒå®ƒå®žçŽ°äº†æ—¥å¿—çš„è®°å½•åQŒæ ¼å¼åŒ–å’Œçñ”别的划分åQŒä»£è¡¨äØ“
logbackåQŒsimplelog。二是日志系¾lŸï¼Œæä¾›äº†å®Œæ•´çš„æ¡†æž¶åŠŸèƒ½òq¶å®žçŽîCº†æ—¥å¿—è®°å½•ã€‚ä»£è¡¨äØ“julåQˆjdkæä¾›çš„æ—¥å¿—框
æžÓž¼‰åQŒlog4jåQˆapacheå¼€æºé¡¹ç›®ï¼‰ã€‚三是抽象整åˆç±»åQŒå®ƒæä¾›äº†ä¸€¾l„接å£ï¼Œå®Œæˆæ—¥å¿—功能åQŒé€šè¿‡åŒ…装其他日志工具或系¾lŸæ¥å·¥ä½œjclåQˆapacheå¼€
æºç»„ä»Óž¼‰åQŒslf4jã€?/span></span></p>
<p style="text-indent: 24pt;" class="0"> </p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;"><span>从历å²ä¸Šè®ÔŒ¼Œlog4j出现最早,</span></span><span style="font-size: 12pt;">Ceki Gülcü<span>æ˜¯å…¶åˆ›é€ è€…ã€‚è‡ªjava1.4开始,jdkæä¾›äº?span class="hilite1">java</span>.util.logging
¾cÕdº“åQŒæä¾›äº†ä¸€ä¸ªå®Œæ•´çš„æ—¥å¿—框架åQŒåœ¨è®¾è®¡ä¸Šè¦æ¯”log4jè¦æ›´æ¸…æ™°ã€?˜q™ä¸ªæ—¶å€™ï¼Œé™¤æ¤ä¹‹å¤–åQŒè¿˜æœ‰ä¸€äº›å…¶ä»–日志组ä»Óž¼Œ<span id="wmqeeuq" class="hilite1">java</span>领域从æ¥ä¸ç¼ºž®‘è½®å,æ€ÀL˜¯æœ‰ähåœ¨å‘æ˜Žè½®
å,轮å多了åQŒå°±ä¼šäñ”ç”ŸæØœä¹±ï¼Œž®×ƒ¼šæœ‰äh站出æ¥ï¼Œè¦ä¸€¾lŸæ±Ÿæ¹–,于是åQŒjclåQŒapache一个开æºçš„æ—¥å¿—¾l„äšg诞生了,它æä¾›äº†ä¸€¾l„日志系¾lŸçš„æŽ¥å£åQŒé€šè¿‡å¯?
log4jåQŒjulå’Œsimplelog˜q›è¡ŒåŒ…装åQŒæä¾›æ—¥å¿—åŠŸèƒ½ã€‚è¿™æ øP¼Œå¼€å‘的时候,åªéœ€è¦ä‹É用jclåQŒé€šè¿‡é…ç½®åQŒçµ‹z»é€‰æ‹©åº•å±‚å®žçŽ°ã€‚è¿™æ øP¼Œå¯¹äºŽå¼€å‘ähå‘?
æ¥è¯´åQŒå¼€å‘æ›´½Ž€å•了些。看èµäh¥ä¸€åˆ‡å¤ªòq³äº†åQŒå¯Ceki Gülcüè®¤äØ“åQŒåº”该有一个更好的日志框架。log4j¾l过˜q™ä¹ˆä¹…çš„å‘展åQŒå·²¾læˆä¸ÞZº†ä¸€ä¸ªå·¨äººï¼Œäº?
伤痕累ç¯åQŒä»Žå¤–é¢çœ‹ï¼Œ¾lå…¸åQŒåº„é‡ï¼Œå¼ºå£®åQŒä»Žå†…éƒ¨çœ‹ï¼Œå´æœ‰ç€ä¸€æ ÒŽ(gu¨©) ¹çš„飞¾U¿ï¼ˆThinkPadåQ‰ï¼Œå……满了代ç çš„å味é“ã€‚æˆ–è®æ€»–æ²¡æœ‰å‹‡æ°”æ¥æ”¹é€ 这个巨人,¼›Õd¼€ä¹?
许是最好的选择åQŒäºŽæ˜¯ï¼Œå‡ºæ¥åQŒåˆ›å»ÞZº†slf4jåQŒæ¥å–代jclåQŒåˆ›å»ÞZº†logbackåQŒæ¥å–代log4j。目å‰ï¼Œlog4jå’Œjul应用最为广
泛,slf4jä½œäØ“æ–°å…´çš„æŠ½è±¡å±‚åQŒæ•´åˆlogbackåQŒä»¥å…¶ç®€‹z,快速,æ£è¢«‘Šæ¥‘Šå¤šçš„é¡¶¾U§é¡¹ç›®ä‹É用ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>代表日志¾l„äšg½Ž€è¦ä»‹¾lã€?/span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Log4j<span>åQŒåކ岿?zh¨¨n) 久,应用òq¿æ³›åQŒè¢«¿UÀL¤åˆ°å¤š¿Uè¯a€åŠåã^åŽÍ¼ŒåŠŸèƒ½å¼ºå¤§åQŒåœ¨ä¼—多的日志框æž?ä¸ï¼Œä»å æ®ç€ä¸Õd¯¼åœîC½ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Jul<span>åQŒjdkæä¾›çš„æ—¥å¿—框æžÓž¼Œè®¾è®¡¾_¾è‰¯åQŒå’Œjdk紧密¾l“åˆåQŒæŽ§åˆ¶çµ‹z»ï¼Œä½¿ç”¨½Ž€å•ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Jcl<span>åQŒæä¾›äº†æ—¥å¿—的抽象层åQŒå¯ä»¥æ•´åˆå¤š¿U实现。但有classloader问题ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Slf4j<span>åQŒæä¾›äº†jcl的超集,é¿å…了classloader问题ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">Logback<span>åQŒå¯é ,通用åQŒå¿«é€Ÿï¼Œç‰|´»çš?span class="hilite1">java</span>æ—?
å¿—å·¥å…øP¼ˆå®˜æ–¹æè¿°åQ‰ã€?/span></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>™å¹ç›®é€‰æ‹©æ€è€ƒã€?/span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是å•一的项目,如桌é¢åº”用,é‡?
用julåQŒå…é…ç½®åQŒæŽ§åˆ¶çµ‹z…R€?/span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是webå¼€å‘,宜采ç”?
log4jåQŒå› 为系¾lŸå·²¾l有了很多的é…置文äšgåQŒä¸åœ¨ä¹Žå¤šä¸€ä¸ªï¼Œè€Œä¸”log4jå¯ä»¥è„Þq¦»ä»ÖM½•¾l„äšgåQŒä¸åƒjulåQŒå’Œjvm紧密¾l“åˆåœ¨ä¸€èµ—÷€?/span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>如果是多™å¹ç›®æ•´åˆå¼€å‘,宜采ç”?
slf4jåQŒä¸€æ˜¯å®ƒå¯ä»¥æ•´åˆå…¶ä»–é—留日志¾l„äšgåQŒäºŒæ˜¯å…¶æä¾›çš„æŠ½è±¡å±‚åQŒäØ“ž®†æ¥çš„å¼€å‘æä¾›äº†ç‰|´»æ€§ã€?/span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"> </p>
<p style="margin-top: 5pt; text-align: justify;" class="0"><span style="font-size: 12pt;"><span>å‚考资料:</span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">1åQ?/span><span style="font-size: 12pt;">IBM developerworks<span>å¯?
log4j的介¾lã€?nbsp;</span></span><span><a _fcksavedurl="http://www.ibm.com/developerworks/cn/java/l-log4j/index.html"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">2åQ?/span><span style="font-size: 12pt;"><span id="wmqeeuq" class="hilite1">Java</span><span>å¼€
æºæ—¥å¿—组件列表ã€?/span></span><span><a _fcksavedurl="http://www.open-open.com/open50229.htm"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">3åQ?/span><span style="font-size: 12pt;">Slf4j<span>å®?方网站ã€?/span></span><span><a _fcksavedurl="http://www.slf4j.org/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">4åQ?/span><span style="font-size: 12pt;">Logback<span>å®?方网站ã€?/span></span><span><a _fcksavedurl="http://logback.qos.ch/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">5åQ?/span><span style="font-size: 12pt;">Log4j<span>å®?方网站ã€?/span></span><span><a _fcksavedurl="http://logging.apache.org/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">6åQ?/span><span style="font-size: 12pt;">Jcl<span>å®?方网站ã€?/span></span><span><a _fcksavedurl="http://commons.apache.org/logging/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">7åQ?/span><span style="font-size: 12pt;">Sun<span>å®?方网站ã€?/span></span><span><a _fcksavedurl="http://www.sun.com/"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<p style="margin-top: 5pt; text-indent: 24pt; text-align: justify;" class="0"><span style="font-size: medium;"><span><span style="font-size: 12pt;">8åQ?/span><span style="font-size: 12pt;"><span>一 个jclçš„ä¸æ–‡è¯´æ˜Žã€?/span></span><span><a _fcksavedurl="http://hedong.3322.org/archives/000316.html"><span style="font-size: 12pt; color: rgb(0, 0, 255); text-decoration: underline;" class="15"><span>链接</span></span></a></span></span></span></p>
<img src ="http://www.aygfsteel.com/asdtiang/aggbug/309180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/asdtiang/" target="_blank">asdtiang</a> 2010-01-12 17:21 <a href="http://www.aygfsteel.com/asdtiang/archive/2010/01/12/309180.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer>
<div class="friendship-link">
<a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a>
</div>
</footer>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
<a href="http://" target="_blank">½ðºþÏØ</a>|
<a href="http://" target="_blank">ÉÏÓÝÊÐ</a>|
<a href="http://" target="_blank">ºÓÄÏÊ¡</a>|
<a href="http://" target="_blank">¶ÀÉ½ÏØ</a>|
<a href="http://" target="_blank">¶¼À¼ÏØ</a>|
<a href="http://" target="_blank">ÐÞÎÄÏØ</a>|
<a href="http://" target="_blank">Ì«±£ÊÐ</a>|
<a href="http://" target="_blank">ÁéèµÏØ</a>|
<a href="http://" target="_blank">Ëà±±</a>|
<a href="http://" target="_blank">ÓÀÐÞÏØ</a>|
<a href="http://" target="_blank">ƽÌÁÏØ</a>|
<a href="http://" target="_blank">¾®ÑÐÏØ</a>|
<a href="http://" target="_blank">Å®ÐÔ</a>|
<a href="http://" target="_blank">ÎâÇÅÏØ</a>|
<a href="http://" target="_blank">ÙñÖÝÊÐ</a>|
<a href="http://" target="_blank">±õÖÝÊÐ</a>|
<a href="http://" target="_blank">ÖÓÏéÊÐ</a>|
<a href="http://" target="_blank">ÂÞ½ÏØ</a>|
<a href="http://" target="_blank">Â¹ÒØÏØ</a>|
<a href="http://" target="_blank">ºÓÔ´ÊÐ</a>|
<a href="http://" target="_blank">Ó¦³ÇÊÐ</a>|
<a href="http://" target="_blank">°²ÏªÏØ</a>|
<a href="http://" target="_blank">ÎäÇ¿ÏØ</a>|
<a href="http://" target="_blank">²ýÍ¼ÏØ</a>|
<a href="http://" target="_blank">³Ç²½</a>|
<a href="http://" target="_blank">»ÝË®ÏØ</a>|
<a href="http://" target="_blank">Ð˺ÍÏØ</a>|
<a href="http://" target="_blank">¿µÆ½ÏØ</a>|
<a href="http://" target="_blank">ÓñϪÊÐ</a>|
<a href="http://" target="_blank">À³ÎßÊÐ</a>|
<a href="http://" target="_blank">²ÊƱ</a>|
<a href="http://" target="_blank">ÄÏ»ãÇø</a>|
<a href="http://" target="_blank">µ¤½¿ÚÊÐ</a>|
<a href="http://" target="_blank">Õò½ÊÐ</a>|
<a href="http://" target="_blank">ɯ³µÏØ</a>|
<a href="http://" target="_blank">ºÍÁúÊÐ</a>|
<a href="http://" target="_blank">¸Ú°ÍÏØ</a>|
<a href="http://" target="_blank">ÏçÄþÏØ</a>|
<a href="http://" target="_blank">»´ÑôÏØ</a>|
<a href="http://" target="_blank">ä»Ë®ÏØ</a>|
<a href="http://" target="_blank">ÄþÁêÏØ</a>|
<script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>