docker를 사용합니다. 우리는 도커 컨테이너에 대한 로깅 드라이버로 fluentd를 사용합니다. 우리는 Tomcat을 사용하여 Java 응용 프로그램을 제공합니다. Java 애플리케이션에서 예외가 발생하면 log4j를 사용하여 해당 예외를 처리합니다. 로깅을 제어하기 위해 해당 페이지의 https://tomcat.apache.org/tomcat-6.0-doc/logging.html 안내에 따라 tomcat에 log4j를 설치했습니다. 다음은 현재 사용중인 구성입니다.stdout 및 stderror에 tomcat 쓰기 중지
log4j.rootLogger = INFO, CATALINA
# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = stewart %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
# log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
# log4j.appender.CONSOLE.Encoding = UTF-8
# log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
# log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] = INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] = INFO, HOST-MANAGER
문제는 표준 오류에 기록됩니다 여전히 스택 추적을 기록됩니다 각 오류입니다. 이로 인해 로깅 플랫폼에 로그 메시지가 두 번 기록됩니다. stderr에 쓰여지는 모든 스택 추적을 막는 가장 좋은 방법은 무엇입니까?
"많은 오류"에 대한 몇 가지 예를 들려 줄 수 있습니까? – aksappy
@ 스튜어트, log4j 설정 어딘가에 appder로 stderr가 있습니까? 필자는 구성을 제공하는 것이 유용 할 것이라고 생각합니다. 적어도 필수적인 부분은 애 퍼더와 로그입니다. –
@Stewart - :), 그래서 당신의 log4j 구성이 불완전하다고 생각합니다. 그걸 보여 주시겠습니까? – aksappy