SPRING
2018.09.28 / 24:11

[Spring, Log] ·Î±×°¡ ¾Èº¸À϶§, Äõ¸®°¡ ¾È³ªÅ¸³¯¶§ ·Î±× Ãâ·ÂÇÏ´Â ¹æ¹ý

hangawee
Ãßõ ¼ö 233

º¸Åë ÀüÀÚÁ¤ºÎ°°Àº Spring±â¹ÝÀÇ ÇÁ·ÎÁ§Æ®¸¦ ÇÒ¶§ ¿¡·¯°¡ ³ª´ø°¡ ȤÀº ¼­¹ö¿¡¼­ ¾î¶² ¾×¼ÇÀÌ ÀϾ¸é ÀÌŬ¸³½º ÄܼÖâ¿¡


¸¹Àº Á¤º¸µéÀÌ ÈÄµÎµÎµÏ ÇÏ°í ¿Ã¶ó°£´Ù.


³»°¡ ³¯¸° Äõ¸®°¡ ¹«¾ùÀÎÁö, ³»°¡ ¿äûÇÑ URLÀº ¹«¾ùÀÖÁö ¹ö±×³ª ¿À·ù°¡ ÀÖÀ»¶© ¾î¶² ¿À·ùÀÎÁö ¿Â°® Á¤º¸µéÀÌ ³ªÅ¸³ª´Âµ¥


°¡²û Äõ¸®¸¦ ½ÇÇàÇصµ ¾î¶² Äõ¸®¸¦ ½ÇÇàÇß´ÂÁö ³ªÅ¸³ªÁö ¾Ê´Â °æ¿ì°¡ ÀÖ´Ù. ´ÜÁö ¿À·ù°¡ ³µÀ»¶§¸¸ ÄܼÖâ¿¡ ·Î±×¸¦ »Ñ·ÁÁÖ´Â °æ¿ì


ÀÌ·²¶§ ¹ö±×°¡ ÀÖ´õ¶óµµ ½Ã½ºÅÛ¿¡¼­ ¿À·ù°¡ ³ªÁö ¾Ê´Â´Ù¸é  ¾î¶² Äõ¸®¸¦ ½ÇÇà½ÃÄ×´ÂÁö ¾î¶² urlÀ» ¿äûÇß´ÂÁö ¾Ë±â Èûµé°Ô µÈ´Ù.



ÀÌ·±°æ¿ìÀÇ ´ëºÎºÐÀº ·Î±ë ÇÁ·ÎÆÛƼÀÇ ¼³Á¤ ·¹º§ÀÌ warn Á¤µµ·Î µÇ¾î ÀÖ´Â °æ¿ì ÀÎ°Í °°´Ù.


Á¤»óÀûÀÎ Äõ¸®µµ ÄܼÖâ¿¡ º¸ÀÌ°Ô ÇÒ¼ö ÀÖµµ·Ï ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.



log4j¸¦ ¾²´ø log4j2¸¦ ¾²´ø logback¸¦ ¾²´ø ¼³Á¤ xmlÆÄÀÏÀÇ À̸§¿£ [log]°¡ µé¾î°£´Ù


ÇÁ·ÎÁ§Æ®ÀÇ ±¸¼º,¼³°è¿¡ µû¶ó ÇØ´ç xmlÆÄÀÏÀº ¸®¼Ò½º¿¡ µé¾î°¡´Â °æ¿ìµµ ÀÖ°í web-inf¿¡ µé¾î°¡´Â °æ¿ìµµ ÀÖ´Ù


ÆÄÀÏÀ» ¿­¾î º¸¸é


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration 
    xmlns:log4j="http://jakarta.apache.org/log4j/" 
    debug="false">
    
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>
    
    <logger name="egovframework" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="console"/>
    </logger>
 
    <!-- log SQL with timing information, post execution -->
    <logger name="jdbc.sqltiming" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
 
    <logger name="jdbc.audit" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="jdbc.resultset" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="org.springframework" additivity="false">
        <level value="INFO" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="java.sql" additivity="false">
        <level value="WARN"/
        <appender-ref ref="console"/
    </logger
    
    <root>
        <level value="INFO" />
        <appender-ref ref="console" />
    </root>
                       
</log4j:configuration>
 
cs


ÀÌ·±½ÄÀ¸·Î µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. À̺κÐÀº log4j³ª logback³ª Å©°Ô ´Ù¸¥ ºÎºÐÀº ¾ø´Ù.


´ÜÁö ·Î°Å ¾È¿¡ ·¹º§ÀÌ µé¾î°¡³Ä ¾Èµé¾î°¡³Ä ¾îÆæµå°¡ Æ÷ÇÔµÇ³Ä ¾ÈµÇ³Ä ±×¸®°í ÃÖ»ó´Ü¿¡ÀÇ Á¤º¸µé°°Àº  ÀÌ·± ¾à°£ÀÇ Â÷À̸¸ ÀÖÀ» »ÓÀÌ´Ù.



º¸¸é <level value="warn"/> À̶ó°í µÇ¾îÀִµ¥


¿©±â¼­ ¹ë·ù°ª¿¡ µé¾î°¡´Â Á¾·ù´Â


DEBUG, INFO, WARN, ERROR, FATAL, ALL, OFF °¡ ÀÖ´Ù.



ALLÀº ¸ðµç ·Î±ë

OFF´Â ·Î±ë ÇØÁ¦


DEBUG = µð¹ö±ë

INFO = °­Á¶Á¤º¸

WARN = °æ°í

ERROR = ¿À·ù

FATAL = ½É°¢ÇÑ ¿À·ù


¶ó´Â ÀÇ¹Ì À̸ç


WARNÀº °æ°í¼öÁØ ÀÌÇÏ ·¹º§ÀÇ Á¤º¸´Â ·Î±ëÇÏÁö ¾Ê´Â ´Ù´Â ¶æÀÌ´Ù

±×·¯´Ï Á¤»óÀûÀ¸·Î µ¹¾Æ°¡´Â SQLÄõ¸®¹®Àº ÄܼÖâ¿¡ ³ªÅ¸³ªÁö ¾ÊÀ¸´Ï


·¹º§ÀÇ ¹ë·ù¸¦ ÀüºÎ DEBUG ·Î ¹Ù²ãÁÖÀÚ


·Î°Å name="" << À̺κÐÀÇ ³×ÀÓÀº ¾î¶² ºÎºÐ¿¡¼­ ·Î±×¸¦ ¶ç¿öÁÙÁö Àû´Â ºÎºÐÀÌ´Ù.


¹ºÁö ¸ð¸£°Ú°í sql¸¸ ¶ç¿ì°í ½Í´Ù¸é jdbc.sqltiming  À̺κÐÀÇ ·¹º§¸¸ DEBUG ·Î ¹Ù²ãº¸µµ·Ï ÇÏÀÚ


¼³Á¤¿¡ µû¶ó  


1
2
3
4
5
6
7
<logger name="org.springframework" level="DEBUG " additivity="false">
     <appender-ref ref="console" />
</logger>
  
<logger name="org.mybatis" level="DEBUG "  additivity="false">
    <appender-ref ref="console" />
</logger>
cs


ÀÌ·±½ÄÀÇ ½ºÇÁ¸µÇÁ·¹ÀÓ¿öÅ©³ª ¸¶À̹ÙƼ½º¿¡ °üÇÑ ·Î±×¸¦ ¶ç¿ï ¼öµµ ÀÖ´Ù.



¾Æ¹«Æ° ¿øÇÏ´Â ºÎºÐÀÇ ·¹º§À» DEBUG·Î ¼³Á¤ÇÑ ÈÄ ±¸µ¿½ÃÅ°¸é Á¤»óÀûÀ¸·Î ½ÇÇàµÇ´Â Á¤º¸µéµµ Ãâ·ÂÀÌ µÈ´Ù.


additivity À̺κÐÀº 

http://seosh81.info/?p=404  << À̺ÐÀÇ ºí·Î±×¿¡¼­ Àß ¼³¸íÀÌ µÇ¾î ÀÖÀ¸´Ï ±Ã±ÝÇÏ¸é µé¾î°¡¼­ º¸ÀÚ


°£´ÜÈ÷ ¼³¸íÇÏÀÚ¸é ·Î±×À̺¥Æ®¸¦ ºÎ¸ð¿¡°Ô Àü´ÞÇϵµ·Ï ÇÏ´À³Ä ¸¶´À³Ä Á¤µµÀÇ ¼³Á¤ºÎºÐÀÎ°Í °°Àºµ¥


¾îÂ÷ÇÇ ³ª´Â ¾ß¸Å°³¹ßÀÚ¶ó¼­ Á¤È®ÇÏ°í ÀÚ¼¼ÇÏ°Õ ¸ð¸¥´Ù.



 <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>


À̺κп¡¼­ ConversionPatternÀ̺κÐÀÇ ¹ë·ù´Â Äֿܼ¡ Ç¥ÇöµÇ´Â Ç¥Çö½ÄÀ» ÁöÁ¤ÇÏ´Â ºÎºÐÀÌ´Ù.


Ç¥Çö½ÄÀº ¾Æ·¡¿Í °°´Ù.


%m: ·Î±× ³»¿ë Ãâ·Â
%p: debug, info, warn, error, fatal µîÀÇ priority Ãâ·Â
%r: ¾îÇÃÀÌ ½ÃÀÛ ÈÄ À̺¥Æ®°¡ ¹ß»ýÇÏ´Â ½ÃÁ¡±îÁöÀÇ °æ°ú½Ã°£ ¹Ð¸®¼¼ÄÁµå·Î Ãâ·Â
%c: package Ãâ·Â
%c{n}: n(¼ýÀÚ) ¸¸Å­ÀÇ package¸¦ °¡Àå ÇÏ´Ü ºÎÅÍ ¿ªÀ¸·Î Ãâ·Â
        ¿¹) %c{2} À϶§ a.b.c ´Â b.c ·Î Ãâ·ÂµÈ´Ù.
%n: °³Ç๮ÀÚ Ãâ·Â. Ç÷¿Æû¿¡ µû¶ó \r\n ¶Ç´Â \n Ãâ·Â.
%d: À̺¥Æ® ¹ß»ý ³¯Â¥ Ãâ·Â ( ÇÁ·Î±×·¥ÀÇ ½ÇÇà¼Óµµ¸¦ ´À¸®°Ô ÇÑ´Ù.)
        ¿¹) %d{HH:mm:ss} ¶Ç´Â %d{dd MMMM yyyy HH:mm:ss}
%C: È£ÃâÀÚÀÇ Å¬·¡½º¸í Ãâ·Â
        ¿¹) %C{2} À϶§ a.b.c.TestClass ´Â c.TestClass ·Î Ãâ·ÂµÈ´Ù.
%M: method À̸§.
%F: ÇÁ·Î±×·¥ ÆÄÀϸí.
%l: callerÀÇ Á¤º¸
%L: callerÀÇ ¶óÀμö
%x: thread¿Í °ü·ÃµÈ NDC(nested diagnostic context) 
%X: thread¿Í °ü·ÃµÈ MDC(mapped diagnostic context) 
%%: % Ç¥½Ã¸¦ Ãâ·Â  
%t: ¾²·¹µå À̸§


·Î±×¶ç¿ïÁÙ ¸ô¶ó¼­ µé¾î¿Â »ç¶÷À̶ó¸é ¾îÂ÷ÇÇ Àú Ç¥Çö½ÄÀ» ¾µÀÏÀº ¾øÀ»Å×´Ï ±×³É ÀÌ·±°Ô Àִٴ°͸¸ ¾Ë¾ÆµÎ°í ³Ñ¾î°¡ÀÚ.



Ãâó: http://yamea-guide.tistory.com/category/Yame Programmer/ÀüÀÚÁ¤ºÎÇÁ·¹ÀÓ¿öÅ©?page=1 [±âŸġ´Â °³¹ßÀÚÀÇ ¾ß¸Å °¡À̵å]