Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Log4j ÈÕÖ¾Ìåϵ½á¹¹
 
×÷ÕߣºFloat_Lu  À´Ô´£º²®ÀÖÔÚÏß ·¢²¼ÓÚ£º 2017-1-4
  2374  次浏览      27
 

ÕªÒª

ÎÒÃÇÔÚдÈÕÖ¾µÄʱºòÊ×ÏÈÒª»ñÈ¡logger£¬ÔÚÿһ¸öʹÓÃlog4jµÄÏîÄ¿¶¼Óкܶà¸öµØ·½Òª»ñÈ¡logger£¬ÕâЩloggerÊÇÕæÊµµÄ±»ÊµÀý»¯µÄLogger¶ÔÏó£¬ËûÃÇÓпÉÄܱ»·ÖÉ¢ÔÚÎÞÊý²»Í¬µÄÀàÖУ¬ÈÕÖ¾Ìåϵ½á¹¹½²µÄÊÇÕâЩlogger¶ÔÏóÊÇÈçºÎ×éÖ¯µÄ£¬ËûÃÇÖ®¼äÓÖÓÐʲôÑùµÄ¹ØÏµ¡£

Ìåϵ½á¹¹

ÎÒÃǾٸö¾ßÌåµÄʵÀýÀ´¿´¿´£¬¼ÙÉèÎÒµÄÏîÄ¿°ü½á¹¹ÈçÏ£º

ÏîÄ¿½á¹¹

˵Ã÷һϣºcom.flu.jdk°üÏÂÃæÓÐÁ½¸öÀà·Ö±ðÊÇLogTest1ºÍLogTest2£¬È»ºóÔÚ°ücom.flu°üÏÂÃæÓÐÒ»¸öLogTest3À࣬ºÜÏÔÈ»£¬com.flu.jdk°üÊÇcom.flu°üµÄ×Ó°ü¡£¼ÙÉèÎÒÃÇÔÚÕâÈý¸öÀàÖзֱðͨ¹ýLogManager.getLogger(xxx.class)»ñÈ¡Èý¸öloggerʵÀý£¬ËûÃÇ·Ö±ðÊÇlogger1¡¢logger2ºÍlogger3£¬ÎÒÃǽ«ÒªÌÖÂÛÕâÈý¸öloggerµÄ¹ØÏµ¡£

ÖµµÃ×¢ÒâµÄÊÇlog4jµÄÈÕÖ¾ÌåϵÖУ¬ÓÐÒ»¸öÌØÊâµÄÈÕÖ¾¶ÔÏó½Ð×öroot£¨¸ù£©£¬ËûÊÇʼÖÕ´æÔڵ쬼ÙÉèÎÒÃÇÊ×ÏÈ»ñÈ¡loggerʵÀý£¬log4j½«¹¹ÔìÏÂÃæÕâÑùÒ»¸öͼÐΣ¨ÎÒ²»ÄܰÑËü½Ð×öÊ÷£©£º

µ±Ö»ÓÐlogger1µÄʱºò

µ±ÎÒÃÇ»ñÈ¡logger2ʵÀýµÄʱºò£¬Õâ¸öͼ½«±ä³É£º

µ±¼ÓÈëlogger2ÈÕ־ʵÀýʱ½á¹¹Í¼

µ±ÎÒÃÇ»ñÈ¡logger3ʵÀýµÄʱºò£¬Õâ¸öͼÓÖ±äÁËÒ»¸öÑù£¬ÈçÏ£º

µ±¼ÓÈëlogger3ÈÕ־ʵÀýÖ®ºó

½ö½ö²ÅÈý¸öÈÕ־ʵÀý£¬Í¼¾Í¸ãµÄÂÔ¸´ÔÓ£¬¿ÉÏëlog4jÓ¦ÓÃÖУ¬½«»áÓÐÎÞÊýµÄÈÕ־ʵÀý°´ÕÕÕâ¸ö¹æÂÉ×é³É·×·±¸´ÔÓµÄÓÐÏòͼ½á¹¹£¬ËäÈ»¿´ÆðÀ´ÔÓÂÒ£¬µ«ÊÇÓÖ¹æÂÉ¡£ÄÇôÎÊÌâÀ´ÁË£¬ÕâÑùµÄ½á¹¹ÓÐʲôÓÃÄØ£¿ÏÂÒ»½ÚÎÒÃǽ«»á¿´µ½ÕâÖֽṹ¶ÔÓÚÈÕÖ¾ÅäÖü̳еÄÓ°Ïì¡£

ÅäÖü̳Ð

log4jÈÕÖ¾¼¶±ð¶¨Òå

ÔÚÍùÏÂÃæ¿´Ö®Ç°ÎÒÃÇÏÈÀ´¿´¿´log4j¶ÔÈÕÖ¾¼¶±ðµÄ¶¨Ò壺

public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT = 30000;
public final static int INFO_INT = 20000;
public final static int DEBUG_INT = 10000;
//public final static int FINE_INT = DEBUG_INT;
public final static int ALL_INT = Integer.MIN_VALUE;

ºÜÏÔÈ»£¬log4jµÄÈÕÖ¾¼¶±ðÓÐÏÂÃæµÄ¹ØÏµ£º

OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL

log4jÔÚдÈÕÖ¾µÄʱºòÖ»Óе±µ±Ç°Ð´ÈÕÖ¾µÄ¼¶±ð´óÓÚµÈÓÚµ±Ç°ÈÕ־ʵÀýµÄÅäÖü¶±ðµÄʱºò£¬ÈÕ־д²Ù×÷²ÅÉúЧ£¬±ÈÈ統ǰÈÕ־ʵÀýµÄÅäÖü¶±ðΪINFO£¬ÄÇôlog.info»áд³É¹¦£¬¶ølog.debugÔò²»»áд¡£

ÈÕ־дԴÂëÆÊÎö

ÎÒÃÇÀ´¿´¿´Ò»¾ä¼òµ¥µÄlog.info(¡°this is log message¡±)µÄ±³ºó£¬ÏÈÀ´¿´¿´Ò»¶ÎÔ´´úÂ룺

public void info(Object message) {
if(repository.isDisabled(Level.INFO_INT))
return;
if(Level.INFO.isGreaterOrEqual(this.getEffectiveLevel()))
forcedLog(FQCN, Level.INFO, message, null);
}
public boolean isDisabled(int level) {
return thresholdInt > level;
}

Ê×ÏÈ¿´¿´µ±Ç°Ð´µÄÈÕÖ¾¼¶±ðÊÇ·ñ±»½ûÖ¹µÄ£¬Ä¬ÈϵÄÇé¿öÏÂthresholdIntΪALL£¬Òò´ËINFOµÄ¼¶±ðÏÔÈ»±ÈALL´ó£¬Òò´ËÏÂÃæ»á¼ÌÐø¿´¿´INFOµÄ¼¶±ðÊÇ·ñ´óÓÚµÈÓÚµ±Ç°ÈÕ־ʵÀýÉúЧµÄ¼¶±ð£¬this.getEffectiveLevel()»ñÈ¡µÄʵÀýÊÇÊ²Ã´ÄØ£¿ÎÒÃǼÌÐø¿´¿´´úÂ룺

public Level getEffectiveLevel() {
for(Category c = this; c != null; c=c.parent) {
if(c.level != null)
return c.level;
}
return null; // If reached will cause an NullPointerException.
}

µ±Ç°ÈÕÖ¾ÉúЧµÄ¼¶±ðÂß¼­ÎªÊ×ÏÈ¿´¿´µ±Ç°ÈÕ־ʵÀýÊÇ·ñÓÐÅäÖü¶±ð£¬Èç¹ûûÓУ¬ÄÇô¾Í¼ÌÐøÕÒµ±Ç°ÈÕ־ʵÀýµÄparent½Úµã£¬°´ÕÕÉÏÒ»½ÚÖÐËù±íÊöµÄ£¬Èç¹ûµ±Ç°ÈÕÖ¾µÄÈÕÖ¾¼¶±ðûÓÐÅäÖ㬵±ÕÒµ½rootµÄÈÕÖ¾¼¶±ð£¬²¢¸ù¾ÝrootµÄÈÕÖ¾¼¶±ðÀ´¶Ï¶¨ÊÇ·ñ¼ÌÐø½øÐÐÈÕ־д¡£ÕâÀïÌáÏÖÁËÈÕÖ¾¼¶±ðµÄ¼Ì³Ð¹ØÏµ£¬Æäʵ²»½ö½öÊÇÈÕÖ¾¼¶±ð£¬ÈÕÖ¾ÆäËûÏà¹ØµÄÅäÖÃÒ²»á»ùÓÚÕâÖּ̳еÄÌØÐÔ£¬±ÈÈçappenderµÈ¡£

ÏîĿӦÓÃ

Á˽âLog4jµÄÈÕÖ¾Ìåϵ½á¹¹ÒÔ¼°ÈÕ־дÓëÈÕÖ¾¼¶±ð¹ØÏµÖ®ºó£¬ÎÒÃÇÏÖÔÚÓ¦¸Ã±È½ÏÇå³þÏîÄ¿ÖÐÓ¦¸ÃÈçºÎÅäÖÃÁË¡£ÒÔLog4j.xmlÅäÖÃÎļþΪÀý×Ó£¬Âú×ã»ù±¾ÐèÇóÎÒÃÇÖ»ÐèÒªÅäÖÃrootÕâ¸öÈÕ־ʵÀýµÄÈÕÖ¾¼¶±ð¼´¿É£¬ÈçÏ£º

<root>
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</root>

ÉÏÃæÅäÖÃÁËrootÈÕ־ʵÀýµÄÈÕÖ¾¼¶±ðΪINFO£¬Èç¹û»ñÈ¡°´ÕÕÒ»¶¨¹æ·¶£¨µ±Ç°ÀàµÄȨÏÞ¶¨Ãû×÷ΪÈÕ־ʵÀýÃû£©£¬ÄÇôÎÒÃÇ¿ÉÒÔ±£Ö¤ËùÓеÄÈÕ־ʵÀý½«¼Ì³ÐrootËùÅäÖõÄÈÕÖ¾¼¶±ð¡£

ÅäÖøôÀë

ÉÏÃæµÄÅäÖÃÂÔ´Ö²Ú£¬¼ÙÈçÎÒÃÇÏëΪ²»Í¬µÄÄ£¿é¸øÓ費ͬµÄÅäÖÃÔõô°ìÄØ£¿×î³£¼ûµÄÊÇÒµÎñÈÕÖ¾ÓëÖмä¼þÈÕÖ¾£¬±ÈÈçÎÒÃǵÄÒµÎñÒµÎñ°üÃûΪcom.dianping.biz£¬¶øÎÒÃǵÄrpc×é¼þµÄ°üÃû×ÖΪcom.dianping.pigeon£¬ÔòÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæ·½·¨¸øÓ費ͬµÄÄ£¿é²»Í¬µÄÅäÖãº

<!--ÒµÎñÈÕÖ¾ÅäÖÃ-->
<category name="com.dianping.biz">
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</category>

<!--pigeon×é¼þÈÕÖ¾ÅäÖÃ-->
<category name="com.dianping.pigeon">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</category>

ͨ¹ýÉÏÃæµÄÅäÖã¬ÎÒÃÇ¿ÉÒÔÖ¸¶¨com.dianping.biz°üÏÂÃæËùÓÐÀà»ñÈ¡µÄlogger¶¼¼Ì³ÐnameΪcom.dianping.bizµÄÈÕÖ¾ÅäÖ㬶øcom.dianping.pigeon°üÏÂÃæµÄËùÓÐÀà»ñÈ¡µÄlogger¶¼¼Ì³ÐnameΪcom.dianping.pigeonµÄÈÕ־ƪÈÕÖ¾¡£²»¹ýͨ³£Éè¼ÆÁ¼ºÃµÄÖмä¼þ¶¼¶¨ÖÆÁËÈÕÖ¾ÅäÖÃÒÔÈ·±£Öмä¼þÈÕÖ¾ÓëÒµÎñÈÕÖ¾¸ôÀë¡£

   
2374 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù

×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ïà¹ØÎÄÕÂ


ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

Ïà¹ØÅàѵ¿Î³Ì


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

³É¹¦°¸Àý


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù