
Ò»¡¢ Log4jµÄÖ÷Òª½Ó¿Ú
1¡¢ Appender£º·â×°ÁËAppenderµÄ²Ù×÷£¬ËùÓÐAppender¶¼Ó¦¸ÃʵÏָýӿڡ£Ö÷Òª·½·¨ÓУº
1£©¡¢addFiltre()¡¢getFilter()¡¢clearFilters()²Ù×÷FilterµÄ·½·¨¡£
2£©¡¢close()£º¹Ø±ÕAppenderµÄ·½·¨¡£
3£©¡¢doAppend()£ºµ±LoggerÏë´òÓ¡ÏûÏ¢µÄʱºò¾Í»áµ÷ÓÃAppenderµÄdoAppend()·½·¨¡£
4£©¡¢getName()¡¢setName£ºÉèÖᢻñÈ¡AppenderµÄÃû×Ö¡£
5£©¡¢getErorHandler()¡¢setErrorHandler()£ºÉèÖᢻñÈ¡AppenderµÄErrorHandler¡£
6£©¡¢getLayout()¡¢setLayout()£ºÉèÖᢻñÈ¡Layout¡£
7£©¡¢requiresLayout()£ºÅжÏAppenderÊÇ·ñÐèÒªLayout(ÅäÖÃʱʹÓÃ)¡£
2¡¢ AppenderAttachable£º·â×°Á˶ÔAppender¾Û¼¯µÄһЩ²Ù×÷£¬Log4jÖÐʹÓÃAppenderAttachableImplÌṩÁËĬÈϵÄʵÏÖ£¬CategoryµÄʵÏÖÊǽ«ËùÓеIJÙ×÷ίÅɸøÁËAppenderAttachableImpl¡£Ö÷Òª·½·¨ÓУº
1£©¡¢addAppender()¡¢removeAppender¡¢removeAllAppenders¡¢getAppender()¡¢getAllAppendersµÈ¾Û¼¯µÄ²Ù×÷·½·¨¡£
2£©¡¢isAttached()£ºÅжÏÒ»¸öAppenderÊÇ·ñÒѾ¼ÓÔØµ½¾Û¼¯ÖÐÁË¡£
3¡¢ OptionHandler£º·â×°Á˼¤»îÉèÖõÄÊôÐԵķ½·¨£¬¾ÍÒ»¸öactivateOptions()·½·¨¡£Í¨¹ý±¾·½·¨¿ÉÒÔ½«ÉèÖõÄÊôÐÔ¼¤»î£¬±ÈÈç¸ù¾ÝÉèÖõÄÎļþÃûÉú³ÉÎļþ¾ä±ú¡£
4¡¢ LoggerRepository£º·â×°Á˶ÔLogger¾Û¼¯µÄһЩ²Ù×÷£¬Log4jÖÐʹÓÃHierarchyÌṩÁËʵÏÖ·½·¨¡£Ö÷Òª·½·¨ÓУº
1£©¡¢addHierarchyEventListener()£ºÊ¹Óù۲ìÕßģʽʵÏÖÁËʼþ»úÖÆ¡£ÔÚÕâÀïÌí¼Ó¹Û²ìÕß¡£
2£©¡¢isDisabled()£ºÅжÏÖ¸¶¨µÈ¼¶µÄLogÄÜ·ñ´òÓ¡¡£
3£©¡¢setThreshold()¡¢getThreshold()£ºÉèÖᢻñÈ¡ThresholdµÈ¼¶ÊôÐÔ¡£
4£©¡¢emitNoAppenderWarning()£ºÅ׳öÒ»¸öûÓÐAppenderÒì³£¡£
5£©¡¢getLogger()¡¢getRootLogger()¡¢exists()¡¢getCurrentLoggers()¡¢getCurrentCategories()£º»ñÈ¡Logger¡£
6£©¡¢fireAddAppenderEvent()£º´¥·¢Add_Appenderʼþ£¬µ÷ÓÃËùÓй۲ìÕßµÄÏàÓ¦·½·¨£¬ÔÚHierarchyÖл¹ÊµÏÖÁËfireRemoveAppenderEvent()·½·¨¡£
7£©¡¢resetConfiguration()£º½«¾Û¼¯ÖеÄËùÓÐLoggerÉèÖûáĬÈÏ״̬£¬RootLoggerµÄµÈ¼¶ÉèÖÃΪDEBUG£¬ThresholdÉèÖÃλALL¡£
5¡¢ HierarchyEventListener£º·â×°Á˹۲ìÕߵIJÙ×÷¡£Ö÷Òª·½·¨ÓУº
1£©¡¢addAppenderEvent()¡¢removeAppenderEvent()£ºÔÚÁ½¸öʼþ´¥·¢µÄÈë¿Ú¡£
6¡¢ RepositorySelector£ºÖ»ÌṩÁËÒ»¸ö»ñÈ¡LoggerRepositoryµÄ·½·¨getLoggerRepository()¡£
7¡¢ LogRecodFilter£ºÌṩÁËÒ»¸ö¹ýÂ˵ķ½·¨passes()£¬Èç¹ûͨ¹ý¹ýÂË·µ»Øtrue£¬·ñÔò·µ»Øfalse¡£
8¡¢ LoggerFactory£ºÌṩÁËÒ»¸ö´´½¨LoggerµÄ¹¤³§·½·¨¡£ÕâÊÇÒ»¸ö³éÏ󹤳§¡£Log4jÖгéÏ󹤳§µÄÓ¦ÓÿÉÒԺúÃѧϰһÏ£¬ÐèҪʹÓù¤³§·½·¨µÄµØ·½¶¼ÌṩÁËÒ»¸öĬÈϹ¤³§À࣬Èç¹ûÓû§²»Ìṩ×Ô¼ºµÄ¹¤³§·½·¨£¬¾ÍÊÇÓÃ×Ô¼ºµÄĬÈϹ¤³§¡£
9¡¢ ObjectRenderer£º·â×°Á˶ÔÏó·ÒëÆ÷µÄ½âÎö·½·¨doRender()¡£Log4jÖеĶÔÏó·ÒëÆ÷ÌåÏÖÁËÒ»ÖÖÃæÏò¶ÔÏóÉè¼ÆÖзdz£ÖØÒªµÄÒ»µã£º“½âñ¬Ëü½«¶ÔÏóµÄ½âÎöÈÎÎñÓÐÀàÖеÄtoString()·½·¨“½âñöÀ´£¬³ÉΪ¶ÔÏó·ÒëÆ÷£¬ÕâÑù¿ÉÒÔʹһ¸öÀàºÍÆä½âÊÍÀà¿ÉÒÔ¶ÀÁ¢ÑÝ»¯¡£Ç¿£¡£¡£¡£¡
10¡¢RendererSupport£º·â×°ÁËÖ§³Ö¶ÔÏó·ÒëÆ÷µÄÐèÒªµÄÁ½¸ö·½·¨¡£GetRendererMap()»ñȡһ¸öRendererµÄ¾Û¼¯¡£SetRenderer()Ìí¼ÓÒ»¸ö¶ÔÏó·ÒëÆ÷¡£
11¡¢Configurator£º·â×°ÁËLog4jµÄÅäÖö¯×÷¡£ÌṩÁËÁ½¸ö×Ö·û´®³£Á¿£¬ºÍʵ¼Ê×÷ÅäÖÃÓõÄdoConfigure()·½·¨¡£µ«ÊDZ¾ÈËÈÏΪ¸Ã½Ó¿ÚµÄÉè¼ÆÃ»ÓÐÕæÕý·¢»Ó×÷Óá£
12¡¢ErrorHandler£º¼Ì³ÐÖÁOptionHandler½Ó¿Ú¡£·â×°Á˶ÔAppenderµÄErrorµÄ´¦Àí¡£
13¡¢ErrorCode£º·â×°ÁËһЩ³£Êý£¬Ê¹ÊµÏÖÕâ¸ö½Ó¿ÚµÄËùÓÐÀà¶¼×Ô¶¯È¡µÃÕâЩ³£Á¿¡£ËäÈ»Sun²»ÔÞ³ÉÕâÖÖ×ö·¨£¬²»¹ýÎÒ¾õµÃÕâÑùÕæµÄºÜ·½±ã¡£
¶þ¡¢ Log4jµÄÖ÷Òª³éÏóÀà
1¡¢ Layout£ºÊµÏÖÁËOptionHandler½Ó¿Ú¡£ÊÇËùÓÐLayoutµÄ»ù´¡Àà¡£ËüÌṩÁËһЩLayOut¹²Óеij£Á¿ºÍ·½·¨¡£Ö÷ÒªÓÐ
1£©¡¢³éÏó·½·¨format()£ºLayout¾ßÌåµÄ½âÎö·½·¨¡£
2£©¡¢getContentType()£º·µ»ØÄÚÈݵÄÀàÐÍ£¬Ä¬ÈÏ·µ»Ø“text/plain”¡£
3£©¡¢getHeader()¡¢getFooter()£º²»ÖªµÀ¾ßÌå×÷Óã¬Ä¬ÈÏ·µ»Ønull¡£
4£©¡¢ignoresThrowable()£ºÈç¹û±¾Layout²»Ö§³ÖThrowable¾Í·µ»Øfalse¡£
2¡¢ AppenderSkeleton£ºÊµÏÖÁËAppender,OptionHadler½Ó¿Ú¡£ÊÇËùÓÐAppenderµÄ»ù´¡Àà¡£ËüÌṩÁËһЩAppender¹²ÓеıäÁ¿ºÍ·½·¨µÄĬÈÏʵÏÖ£¬Ö÷ÒªÓУº
1£©¡¢±äÁ¿£ºLayout,name,Threshold,ErrorHandler(new OnlyOnceErrorHandler()), headFilter,tailFilter,closed(false)ÕâÊÇÿ¸öAppender¶¼Ó¦¸ÃÓеıäÁ¿¡£
2£©¡¢setLayout(),getLayout():ÊôÐÔlayoutµÄ²Ù×÷·½·¨¡£
3£©¡¢setName(),getName():ÊôÐÔnameµÄ²Ù×÷·½·¨¡£
4£©¡¢setErrorHandler(),getErrorHandler()£ºÊôÐÔErrorHandlerµÄ²Ù×÷·½·¨¡£
5£©¡¢setThreshold(),getThreshold(),isAsSevereAsThreshold()£ºÊôÐÔThresholdµÄ²Ù×÷·½·¨£¬ºÍAppenderµÄThresholdµÈ¼¶µÄ±È½Ï·½·¨¡£
6£©¡¢addFilter(),clearFilters()£ºÌṩÁËÒ»¸ö²Ù×÷FilterÁ´±íµÄ²Ù×÷·½·¨¡£Í¨¹ýaddFilter()·½·¨£¬½«Í·½áµã£¨headFilter£©Î²½áµã£¨tailFilter£©×é³ÉÒ»¸öµ¥Ïò²»Ñ»·Á´±í¡£
7£©¡¢activateOptions()£º¶ÔOptionHandler½Ó¿ÚµÄĬÈÏʵÏÖ£¬Ê²Ã´¶¼²»×ö¡£
8£©¡¢finalize()£ºµ±±»À¬»øÊÕ¼¯Ê±£¬Èç¹ûAppenderûÓйرվ͹رÕËü¡£
9£©¡¢doAppend(),append()£ºdoAppend()·½·¨ÌṩÁËÔÚlog´òÓ¡¹ý³ÌÖÐloglogµÄ´òÓ¡£¬ThresholdµÈ¼¶µÄ¿ØÖƺ͹ýÂËÆ÷µÄµ÷Ó㬲¢ÁôÁËÒ»¸öÐé·½·¨£¨append()£©¸øÒÔºóµÄAppenderÀ´ÊµÏÖ¡£
3¡¢ Filter£ºÊµÏÖÁËOptionHandler¡£ËùÓÐFilterµÄ»ùÀ࣬ËûÌṩÁËFilter¹²ÓеıäÁ¿ºÍ·½·¨£¬Ö÷ÒªÓУº
1£©¡¢±äÁ¿£ºÒ»¸ö¹¹³ÉÁ´±í½á¹¹µÄnext±äÁ¿£¬·µ»ØÖµ³£Á¿DENY(-1),NEUTRAL(0),ACCEPT(1)¡£
2£©¡¢Ðé·½·¨decide()£ºÌṩ¹ýÂ˵Ľӿڡ£
3£©¡¢activateOptions()£ºOptionHandler½Ó¿ÚµÄĬÈÏʵÏÖ¡£
4¡¢ PatternConverter£ºÊÇÌṩ¸ñʽ»¯·½·¨µÄÒ»¸ö»ù´¡³éÏóÀ࣬ËûÌṩÁËËùÓиñʽ»¯·½·¨µÄ¹²Í¬½Ó¿Ú£¬Ö÷Òª·½·¨ºÍ±äÁ¿ÓУº
1£©¡¢±äÁ¿next:¹¹³ÉÁ´±íÓá£min(-1),max(0x7FFFFFFF),leftAlign(false)¡£
2£©¡¢
3£©¡¢
5¡¢
Èý¡¢ Ö÷ÒªLog4jʵÏÖ
1¡¢AppenderAttachableImplÀàÌṩÁËAppenderAttachable½Ó¿ÚµÄĬÈÏʵÏÖ¡£ËûʹÓÃVectorʵÏÖÁËAppender¾Û¼¯µÄ¹ÜÀí·½·¨¡£
ËÄ¡¢
Îå¡¢ À©Õ¹
ÉÏһƪ£º JBoss jBPM2.0¹¤×÷Á÷ÒýÇæÍêÈ«½âÃÜ
ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!