JSR-047 ¹× Commons Logging Áö¿ø

·Î±× ¹× ÃßÀû ºÐ¼®±â´Â ´ÙÀ½ ·Î±ë À¯Æ¿¸®Æ¼ÀÇ »õ »ç¿ëÀÚ¿Í ±âÁ¸ »ç¿ëÀÚ¿¡°Ô µ¶¸³Çü ¹× Ç÷¯±×ÀÎ Áö¿øÀ» Á¦°øÇÕ´Ï´Ù.

ÀÌ Áö¿øÀÇ ¼¼ºÎ»çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.

  1. ·Î±ë ¿¡ÀÌÀüÆ®·Î ·Î±× ¸Þ½ÃÁö¸¦ ³»º¸³»´Â ±â´É
    org.eclipse.hyades.logging.java ÆÐÁöŰÀÇ java.util.logging.Handler abstract Ŭ·¡½ºÀÇ È®ÀåÀ» ÅëÇØ ·Î±ë ¿¡ÀÌÀüÆ®·Î ·Î±× ¸Þ½ÃÁö¸¦ ³»º¸³»µµ·Ï ·Î°Å¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
    ÀÌ org.eclipse.hyades.logging.java.LoggingAgentHandler Çڵ鷯´Â ·Î°Å¿¡ ±â·ÏµÈ java.util.logging.LogRecord ·Î±× ¸Þ½ÃÁö°¡ Çڵ鷯ÀÇ ÇÊÅÍ¿Í ·Î±ë ·¹º§¿¡ µû¶ó ·Î±× °¡´ÉÇÑÁö¸¦ È®ÀÎÇÕ´Ï´Ù. ·Î±× ¸Þ½ÃÁö°¡ ·Î±×µÇ´Â °æ¿ì ¸Þ½ÃÁö¸¦ ·Î±×ÇÏ´Â ·Î°Å¿Í °°Àº À̸§ÀÇ ·Î±ë ¿¡ÀÌÀüÆ®°¡ ÀÛ¼ºµË´Ï´Ù. ¸Þ½ÃÁö´Â org.eclipse.hyades.logging.java.XmlFormatter¸¦ »ç¿ëÇÏ¿© Çü½ÄÈ­µÇ°í ·Î±ë ¿¡ÀÌÀüÆ®¿¡ ±â·ÏµË´Ï´Ù.
     
  2. XML·Î ·Î±× ¸Þ½ÃÁö¸¦ º¯È¯ÇÏ´Â ±â´É
    org.eclipse.hyades.logging.java ÆÐŰÁöÀÇ java.util.logging.Formatter abstract Ŭ·¡½ºÀÇ È®ÀåÀ» ÅëÇØ org.eclipse.hyades.logging.java.LoggingAgentHandler ¹× ±âŸ Çڵ鷯°¡ java.util.logging.LogRecord ·Î±× ¸Þ½ÃÁö¸¦ XML·Î Çü½ÄÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ org.eclipse.hyades.logging.java.XmlFormatter Æ÷¸ËÅÍ´Â java.util.logging.LogRecord ¸Þ½ÃÁö¸¦ ÇöÀç org.eclipse.hyades.internal.logging.core.XmlGenerator ±¸Çö(È£½ºÆ®, ÇÁ·Î¼¼½º ¹× ¿¡ÀÌÀüÆ® ű״ Á¦¿Ü)°ú µ¿µîÇÑ XML·Î º¯È¯ÇÕ´Ï´Ù. »ý¼ºµÈ XMLÀº Çü½ÄÈ­µÇ¾î ÀÖÁö ¾Ê°í ÃÖ´ë Áßø ·¹º§Àº 4·Î ¼³Á¤µË´Ï´Ù. Çü½ÄÈ­ ½Ã, ¿ÀºêÁ§Æ®´Â org.eclipse.hyades.logging.core. IExternalizableToXml ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö ¿©ºÎ°¡ °Ë»çµË´Ï´Ù. ÀÌ °æ¿ì, ¼º´É»óÀÇ ÀÌÀ¯·Î XML Á÷·ÄÈ­ ´ë½Å externalizeCanonicalXmlString() API°¡ ÀÚü °Ë»ç¸¦ ÅëÇØ È£ÃâµË´Ï´Ù.

    ´ÙÀ½ Ãâ·ÂÀº ·Î±× ¸Þ½ÃÁö(¹®ÀÚ¿­ "Hello World"(SEVERE ·Î±ë ·¹º§))ÀÇ XML º¯È¯À» ¼³¸íÇÕ´Ï´Ù.
       <LogRecord logging.util.id="java.util.logging.LogRecord_10468105484720000" 
       logging.util.agent_idref="org.eclipse.hyades.tests.java.JavaLoggingTest" 
       logging.util.MsgLoggerLevel="SEVERE" LoggerName="org.eclipse.hyades.tests.java.JavaLoggingTest" 
       ResourceBundleName="null" SequenceNumber="0" SourceClassName="org.eclipse.hyades.tests.java.JavaLoggingTest" 
       SourceMethodName="main" Message="Hello World" ThreadID="10" 
       Millis="1046810548171">
       	<ResourceBundle Instance_Name="ResourceBundle" Value="null"/>
    	<Level Instance_Name="Level" logging.util.id="java.util.logging.Level_10468105484720001"  
       		ResourceBundleName="sun.util.logging.resources.logging" Name="SEVERE" 
       		LocalizedName="SEVERE"><Class Instance_Name="Class" logging.util.id="java.lang.Class_10468105484720002" 
       		Name="java.util.logging.Level" Type="class" Package="java.util.logging" 
       		Modifers="public" Superclass="java.lang.Object" />
       	</Level>
       	<Array Instance_Name="Parameters" Value="null" />
    	<Throwable Instance_Name="Thrown" Value="null" />
    	<Class Instance_Name="Class" logging.util.id="java.lang.Class_10468105484820000" 
    	   Name="java.util.logging.LogRecord" Type="class" Package="java.util.logging" 
    	   Modifers="public" Superclass="java.lang.Object" />
      </LogRecord>

  3. ±âÁ¸ Java ·Î±ë API·Î È®Àå Ŭ·¡½º¸¦ ºÎÆ®½ºÆ®·¦ÇÏ´Â ±â´É
    org.eclipse.hyades.logging.java14 È®Àå Ŭ·¡½º¸¦ JDK 1.4.0 ÀÌ»óÀÇ ±âÁ¸ Java ·Î±ë API·Î ºÎÆ®½ºÆ®·¦ÇÏ·Á¸é VM ½Ãµ¿ ¶Ç´Â java.util.logging.LogManager.readConfiguration() API È£Ãâ Àü¿¡ ´ÙÀ½ Ç׸ñÀ» JRE_HOME\lib\logging.properties ±¸¼º ÆÄÀÏ¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.
    handlers= <your current handlers>, org.eclipse.hyades.logging.java.LoggingAgentHandler
    org.eclipse.hyades.logging.java.LoggingAgentHandler.formatter = org.eclipse.hyades.logging.java.XmlFormatter
    
     

    ¶Ç´Â addHandler()¿Í setFormatter() API¸¦ »ç¿ëÇÏ¿© ·Î°Å(¿¹: Çڵ鷯)¿Í Çڵ鷯(¿¹: Æ÷¸ËÅÍ)¿¡¼­ ·±Å¸ÀÓ ½Ã ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î JDK 1.4.0 ÀÌ»óÀÇ ±âÁ¸ Java ·Î±ë API¿Í ÇÔ²² org.eclipse.hyades.logging.java14 Ç÷¯±×ÀÎ È®Àå Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
     

  4. ·Î±× ·¹Äڵ忡 Common Base Event¸¦ Æ÷ÇÔÇÏ´Â ±â´É
    org.eclipse.hyades.logging.java ÆÐŰÁöÀÇ java.util.logging.LogRecord Ŭ·¡½ºÀÇ È®ÀåÀ» ÅëÇØ java.util.logging.LogRecord¿¡ org.eclipse.hyades.logging.events.ICommonBaseEvent¸¦ Æ÷ÇÔ½Ã۱â À§ÇÑ »ç¿ëÀÚ Á¤ÀÇ ·Î±× ·¹Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

    ÀÌ org.eclipse.hyades.logging.java.CommonBaseEventLogRecord´Â java.util.logging.LogRecord¸¦ È®ÀåÇϸç org.eclipse.hyades.logging.events.ICommonBaseEvent¿¡ ´ëÇÑ ´ÜÀÏ ÂüÁ¶¸¦ Æ÷ÇÔÇÕ´Ï´Ù. java.util.logging.Logger¿¡ ±â·ÏÇϱâ Àü¿¡ »õ org.eclipse.hyades.logging.java.CommonBaseEventLogRecord ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.
     
  5. Çڵ鷯 Ŭ·¡½º¿¡¼­ 󸮵Ǵ ·Î±× ·¹Äڵ带 ÇÊÅ͸µÇÏ´Â ±â´É
    org.eclipse.hyades.logging.java.CommonBaseEventFilter(org.eclipse.hyades.logging.java.CommonBaseEventLogRecord¸¸ ·Î±×µÇµµ·Ï Çã¿ë)¿Í °°Àº java.util.logging.Filter ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» ¼³Á¤Çϰí Çڵ鷯¿¡ java.util.logging.LevelÀ» ·Î±×ÇÏ¿© org.eclipse.hyades.logging.java.LoggingAgentHandler Ŭ·¡½º¿¡¼­ 󸮵Ǵ ·Î±× ·¹Äڵ带 ÇÊÅÍÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °ªÀº setFilter()¿Í setLevel() API¸¦ °¢°¢ »ç¿ëÇÏ¿© ·±Å¸ÀÓ ½Ã ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

    ¶Ç´Â VM ½Ãµ¿À̳ª java.util.logging.LogManager.readConfiguration() API È£Ãâ Àü¿¡ ´ÙÀ½ Ç׸ñÀ» JRE_HOME\lib\logging.properties¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
    org.eclipse.hyades.logging.java.LoggingAgentHandler.level = <level>
    org.eclipse.hyades.logging.java.LoggingAgentHandler.filter = org.eclipse.hyades.logging.java.CommonBaseEventFilter
    
       
  6. java.lang.Object ¹× java.lang.Throwable¿¡ ´ëÇÑ »ç¿ëÀÚ Á¤ÀÇ ·Î°Å ÀÛ¼º ±â´É
    org.eclipse.hyades.logging.commons ÆÐŰÁöÀÇ org.apache.commons.logging.Log ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀ» ÅëÇØ java.lang.Object¿Í java.lang.ThrowableÀ» ·Î°Å¿Í À̸§ÀÌ °°Àº ·Î±ë ¿¡ÀÌÀüÆ®¿¡ ·Î±×Çϱâ À§ÇÑ »ç¿ëÀÚ Á¤ÀÇ ·Î°Å¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
    ÀÌ org.eclipse.hyades.logging.commons.Logger´Â ·Î°Å¿¡ ±â·ÏµÈ java.lang.Object ¹×/¶Ç´Â java.lang.Throwable ·Î±× ¸Þ½ÃÁö°¡ ·Î°ÅÀÇ ·Î±ë ·¹º§¿¡ µû¶ó ·Î±× °¡´ÉÇÑÁö ¿©ºÎ¸¦ È®ÀÎÇÕ´Ï´Ù. ·Î±× ¸Þ½ÃÁö°¡ ·Î±×µÇ´Â °æ¿ì java.lang.Object ¹× java.lang.Throwable log ¸Þ½ÃÁö´Â org.eclipse.hyades.internal.logging.core.XmlGenerator¸¦ »ç¿ëÇÏ¿© Çü½ÄÈ­µÇ°í ·Î±ë ¿¡ÀÌÀüÆ®¿¡ ±â·ÏµË´Ï´Ù. Çü½ÄÈ­ ½Ã, ¿ÀºêÁ§Æ®´Â org.eclipse.hyades.logging.core. IExternalizableToXml ÀÎÅÍÆäÀ̽ºÀÇ ±¸Çö ¿©ºÎ°¡ °Ë»çµË´Ï´Ù. ÀÌ °æ¿ì, ¼º´É»óÀÇ ÀÌÀ¯·Î XML Á÷·ÄÈ­ ´ë½Å externalizeCanonicalXmlString() API°¡ ÀÚü °Ë»ç¸¦ ÅëÇØ È£ÃâµË´Ï´Ù. org.eclipse.hyades.logging.commons.Logger Ŭ·¡½º¸¦ org.apache.commons.logging.LogFactory Ŭ·¡½º·Î ºÎÆ®½ºÆ®·¦ÇÏ·Á¸é VM ½Ãµ¿ ½Ã ´ÙÀ½ ½Ã½ºÅÛ Æ¯¼ºÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
    -Dorg.apache.commons.logging.Log=org.eclipse.hyades.logging.commons.Logger

ÁÖÀÇ»çÇ×

  1. ¹®ÀÚ¿­ ·Î±× ¸Þ½ÃÁö¸¦ ·Î±×ÇÏ·Á´Â °æ¿ì ¸Þ½ÃÁö¿¡ XML ´ÜÆíÀ» Æ÷ÇÔ½ÃÄѼ­´Â ¾ÈµË´Ï´Ù. ·Î±× ¸Þ½ÃÁö¿¡ XML ´ÜÆíÀ» Æ÷ÇÔ½Ã۸é XML ÄÁÅÙÃ÷°¡ ÀϹÝÈ­µÇ°í ¹®ÀÚ¿­ ű×ÀÇ °ª ¼Ó¼ºÀÇ °ª¿¡ Ãß°¡µË´Ï´Ù. ¿¹¸¦ µé¾î,
    <String >logging.util.agent_idref>=>"AGENT_CREATE.LoggingUtilSample 
       logger.1045075846.538" >logging.util.MsgLoggerLevel>=>"FINEST"
       >Value>=>"&lt;tag attribute=&quot;value&quot;/&gt;">/>>
  2. com.ibm.etools.logging.util µ¶¸³Çü ·Î±ë À¯Æ¿¸®Æ¼ »ç¿ëÇÏ´Â °æ¿ì JAR ÆÄÀÏ(hlcore.jar, hparse.jar, hexl.jar ¹× hexr.jar)ÀÇ °æ·Î¸¦ ½Ã½ºÅÛ ¹× VM Ŭ·¡½º °æ·Î¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.

 

°ü·Ã °³³ä
Common Base Event ¸ðµ¨

 

(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.