문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:logback:config_groovy [2013/07/10 16:39] kwon37xi |
java:logback:config_groovy [2016/01/04 14:00] (현재) kwon37xi [File Appender Options] |
||
---|---|---|---|
줄 9: | 줄 9: | ||
def maxHistoryCount = args.maxHistory ?: 10 | def maxHistoryCount = args.maxHistory ?: 10 | ||
def minLevel = args.level | def minLevel = args.level | ||
+ | def logMarker = args.marker | ||
| | ||
appender(appenderName, | appender(appenderName, | ||
줄 25: | 줄 26: | ||
filter(ch.qos.logback.classic.filter.ThresholdFilter) { | filter(ch.qos.logback.classic.filter.ThresholdFilter) { | ||
level = minLevel | level = minLevel | ||
+ | } | ||
+ | } else if (logMarker != null) { | ||
+ | filter(ch.qos.logback.core.filter.EvaluatorFilter) { | ||
+ | evaluator(ch.qos.logback.classic.boolex.OnMarkerEvaluator) { | ||
+ | marker = logMarker | ||
+ | } | ||
+ | onMismatch = ch.qos.logback.core.spi.FilterReply.DENY | ||
+ | onMatch = ch.qos.logback.core.spi.FilterReply.NEUTRAL | ||
} | } | ||
} | } | ||
줄 35: | 줄 44: | ||
logPattern: ' | logPattern: ' | ||
</ | </ | ||
+ | |||
+ | ===== FixedWindowRollingPolicy ===== | ||
+ | <code groovy> | ||
+ | // 10MB 기준으로 롤링한다. | ||
+ | appender(' | ||
+ | file = '/ | ||
+ | append = true | ||
+ | |||
+ | encoder(PatternLayoutEncoder) { | ||
+ | pattern = ' | ||
+ | } | ||
+ | |||
+ | filter(ch.qos.logback.classic.filter.ThresholdFilter) { | ||
+ | level = ERROR | ||
+ | } | ||
+ | |||
+ | rollingPolicy(ch.qos.logback.core.rolling.FixedWindowRollingPolicy) { | ||
+ | fileNamePattern = '/ | ||
+ | minIndex = 1 | ||
+ | maxIndex = 5 | ||
+ | } | ||
+ | |||
+ | triggeringPolicy(ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy) { | ||
+ | maxFileSize = ' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Logger additivity ===== | ||
+ | * 특정 로거의 경우 특정 Appender로만 로그를 쌓고 root 로거로는 로그를 쌓고싶지 않을 때 '' | ||
+ | * 특정 로그만 처리할 Appender는 root 로거의 Appender로 추가하지 않는다. | ||
+ | |||
+ | <code groovy> | ||
+ | // specialappender 생성 | ||
+ | |||
+ | logger(' | ||
+ | |||
+ | // root 로거에 specialappender를 추가하면 com.somthing.special 가 아닌 다른 로거들까지 해당 Appender가 처리하게 됨. | ||
+ | root(INFO, [' | ||
+ | </ | ||
+ | |||
+ | ===== File Appender Options ===== | ||
+ | * '' | ||
+ | * '' | ||
+ | * 단, '' | ||
+ | * '' | ||
+ | * 파일 압축을 사용할 수 없다. | ||
+ | * '' | ||
+ | * 이런 저런 성능상의 문제나 제약이 많은 듯. 가능하면 사용하지 말기. | ||
+ | |||
+ | ===== JMXConfiguration ===== | ||
+ | <code groovy> | ||
+ | jmxConfigurator() | ||
+ | |||
+ | // 혹은 | ||
+ | jmxConfigurator(' | ||
+ | |||
+ | // 혹은 | ||
+ | jmxConfigurator(' | ||
+ | </ | ||
+ | |||
+ | JMX를 통해 로그 레벨을 바꾸려면 JConsole 등으로 접속하여 '' | ||
+ | |||
+ | |||
+ | ===== IntelliJ IDEA 대응 ===== | ||
+ | * IntelliJ IDEA 12버전 이하는 기본적으로 '' | ||
+ | * **Settings -> Compiler -> Resource patterns**의 맨 끝에 ''; | ||
+ | |||
+ | ===== Status Listener ===== | ||
+ | [[http:// | ||
+ | <code groovy> | ||
+ | statusListener(OnConsoleStatusListener) // console로 logback 현재 상태를 출력함 | ||
+ | </ | ||
+ |