Logback Setting(Not Spring Project)

출처 : https://hjh2004hjh.blogspot.kr/2016/06/logback-settingnot-spring-project.html

1. add jar file

 - commons-compiler-2.7.8.jar
 - commons-logging-1.2.jar
 - janino.jar
 - jcl-over-slf4j-1.7.21.jar
 - logback-classic-1.1.7.jar
 - logback-core-1.1.7.jar
 - slf4j-api-1.7.21.jar

 - Logback : http://logback.qos.ch/
 - Janino : https://github.com/janino-compiler/janino
 - SLF4j(Simple Logging Facade for Java) : http://www.slf4j.org/
 - Commons-Logging : https://commons.apache.org/proper/commons-logging/

2. add context in web.xml

<listener>
  <listener-class>
    ch.qos.logback.classic.selector.servlet.ContextDetachingSCL
  </listener-class>
</listener>

3. add file logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="true">
  <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
      <evaluator>
        <expression>
          return message.contains("Using Connection");
        </expression>
      </evaluator>
      <OnMismatch>NEUTRAL</OnMismatch>
      <OnMatch>DENY</OnMatch>
    </filter>
    <encoder>
      <pattern>
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <timestamp key="bySecond" datePattern="yyyyMMdd_HH"/>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>C://logs/logback-${bySecond}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>logback.%d{yyyyMMdd_HH}.log.zip</fileNamePattern>
      <!--File 30 days has passed is deleted.-->
      <!--30日が過ぎたファイルは削除される。-->
      <!--30일이 지난 파일은 삭제가 된다.-->
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <root level="DEBUG" additivity="false">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
  </root>
</configuration>