본문 바로가기
IT와 꿍짝

로그를 위해 Log4J2를 tomcat 7 사용하는 방법입니다. 긴급 패치 링크 포함 sns4u

by 해피비(HappyB, Happy plan B) 2020. 1. 20.
반응형

안녕하세요. 행부장입니다.


로그를 위해 Log4J2를 tomcat 7 사용하는 방법입니다.

2021.12.13 긴급 패치 정보는 제 블로그 글, “Apache Log4j 2 보안 업데이트 권고 정보입니다. 로그4j 2”을 참고하시길. sns4u.tistory.com/m/835

Apache Log4j 2 보안 업데이트 권고 정보입니다. 로그4j 2

안녕하세요. 누군가에게 기댈 수 있는 곳이 되길 바라며, 함께 할 수 있는 일상 공유로 SNS에 컨텐츠를 만드는 행복랜드 행부장(HappyLandHB)입니다. Apache Log4j 2 보안 업데이트 권고 정보입니다. 최신

sns4u.tistory.com

(사진 출처: 아래 첨부)


1. 해당 파일들은 tomcat의 web-inf 밑의 lib폴더에 복사
log4j-api-2.xxx.jar
log4j-core-2.xxx.jar
log4j-web-2.xxx.jar




2. /conf 아래 web.xml 수정
Web.xml


<?xml version="1.0" encoding="utf-8"?>

<web-app>

    <listener>

        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>

    </listener>

 

    <filter>

        <filter-name>log4jServletFilter</filter-name>

        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>

    </filter>

   


    <!-- log4j 서블릿 필터를 적용할 요청 종류를 지정한다. 이 중 ASYNC는 서블릿 3.0 이상에서만 사용 가능하다 -->


    <!-- 원하는 url 맵핑을 해주면 된다. 아래 예제는 모든 URL의 모든 형태의 요청에 대해 Log4j 서블릿 필터를 적용한 것이다. -->

    <filter-mapping>

        <filter-name>log4jServletFilter</filter-name>

        <url-pattern>/*</url-pattern>

        <dispatcher>REQUEST</dispatcher>

        <dispatcher>FORWARD</dispatcher>

        <dispatcher>INCLUDE</dispatcher>

        <dispatcher>ERROR</dispatcher>

        <dispatcher>ASYNC</dispatcher>

    </filter-mapping>




    <!-- 생략 가능하다. 별도로 설정하지 않으면 기본 서블릿컨텍스트 이름을 사용한다 -->


    <context-param>

        <param-name>log4jContextName</param-name>

        <param-value>myApplication</param-value>

    </context-param>

   


    <!-- log4j2의 설정 파일 위치를 지정한다. -->     

    <context-param>

        <param-name>log4jConfiguration</param-name>

        <param-value>/WEB-INF/conf/log4j2.xml</param-value>

    </context-param>

</web-app>





3. /WEB-INF/config 밑에 Log4j2.xml 추가

 logging 레벨은 TRACE < DEBUG < INFO < WARN < ERROR and FATAL 순서임

<?xml version="1.0" encoding="UTF-8"?>

<configuration status="WARN">

  <appenders>

    <Console name="Console" target="SYSTEM_OUT">

      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

    </Console>


    <File name="MyFile" fileName="/logs/app.log">

        <PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

    </File>             

  </appenders>


  <loggers>     

 <root name="testLogger" level="debug">

<!--       <appender-ref ref="console" />            -->

       <appender-ref ref="MyFile" />

    </root>

  </loggers>

</configuration>






4. 테스트

<%@ page import="org.apache.logging.log4j.Logger" %>
<%@ page import="org.apache.logging.log4j.LogManager" %>

<html>
    <head>
        <title>Demonstration log4j usage in jsp</title>
    </head>
    <body>
        <% Logger log = LogManager.getLogger(this.getClass()); %>

        <%
           long beforeTime = System.currentTimeMillis();

           log.info("Show INFO message");
           log.warn("Show WARN message");
           log.error("Show ERROR message");
           log.fatal("Show FATAL message");

           long afterTime = System.currentTimeMillis();
           long secDiffTime = (afterTime - beforeTime);
           log.debug("Show DEBUG message=>beforeTime: " + beforeTime +", afterTime: " + afterTime + ", DiffTime(mili sec): "+secDiffTime);

        %>
        <b>The log messages are shown save in the /usr/share/tomcat/logs/log4j2log.log file.</b>
    </body>
</html>

5. 출처
1. http://nirmalbalasooriya.blogspot.com/2015/06/log4j2-logging-on-jsp-in-tomcat-7.html
2. http://blog.daum.net/tingle/9032388





감사드리며...


구독자님의 ▼공감 클릭과 댓글에 먼저 감사 드려요.
아래 ▼▼구독버튼도 눌러 주시길 부탁드려요.


감사합니다.

반응형

댓글