톰캣 5.5 버전에서 로그를 SYSLOG로 보내는 방법 문의

ziosnim의 이미지

안녕하세요.

톰캣 로그를 SYSLOG로 보내는 방법을 알고 싶습니다.

기본적으로 톰캣 로그는 /var/log/tomcat5/catalina.out에 쌓이고 있습니다. 이 곳에 쌓이는 로그를 SYSLOG로 보내고자 합니다.

제 짧은 생각으로는 /etc/init.d/tomcat5 파일에서 수정하렴 될 듯한데 어떻게 수정을 해야할 깜깜합니다..ㅠㅠ;

# Define the tomcat log file
TOMCAT_LOG="${TOMCAT_LOG:-/var/log/tomcat5/catalina.out}"

이 부분에서 말이죠..

이부분이 아니라면 다른 방법 좀 부탁 드립니다.^^

다즐링의 이미지

http://tomcat.apache.org/tomcat-5.5-doc/logging.html#log4j

이 문서를 보시고 기본 로거를 log4j 로 바꿉니다

그리고 log4j.properties 에서 설정을 넣으면 됩니다.
퍼실러티랑 syslog 호스트만 변경해주면 됩니다.


log4j.appender.CATALINA.facility=LOCAL0

log4j.appender.CATALINA.layout.ConversionPattern=%-5p [%t] [%c]: %m%n

log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout

# # enter your host here
log4j.appender.CATALINA.SyslogHost=loghost

------------------------------------------------------------------------------------------------
Life is in 다즐링

익명 사용자의 이미지

현재 환경: Tomcat 5.5 with CentOS 5.6 Final version (32Bit)

log4j.properties 파일 경로:
/usr/share/tomcat5/common/classes

log4j-1.2.16.jar 와 commons-logging-1.1.1.jar 파일 경로:
/usr/share/tomcat5/common/lib

log4j.properties 파일 내용:
[root@CENTOSTESTER classes]# cat log4j.properties
log4j.rootLogger=WARN, file, SYSLOG
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.append=true
log4j.appender.file.File=/var/log/tomcat5/tomcat.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.maxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{DATE} - [%t] - %C{1}.%M(%L) - %p: %m%n
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.SyslogHost=127.0.0.1
log4j.appender.SYSLOG.Facility=LOCAL0
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%-4r %-5p %c{2} %M.%L %x - %m\n
log4j.appender.SYSLOG.threshold=DEBUG
# Print only messages of level ERROR or above in the package noModule.
log4j.logger.noModule=FATAL
# OpenSymphony Stuff
log4j.logger.net.apache.framework=DEBUG
log4j.logger.net.apache=DEBUG
log4j.logger.org.apache.struts2=ERROR
log4j.logger.org.hibernate.type=ERROR
log4j.logger.org.hibernate.SQL=ERROR
[root@CENTOSTESTER classes]#

/etc/syslog.conf 파일에서 설정한 내용:

# syslog server's ip address
local0.* /var/log/tomcat5/tomcat.log

*.* @192.168.10.13

Tomcat service 와 Syslog 서비스 재실행

위와 같이 하면, 아래의 로그 폴더에 tomcat.log 파일이 생성됩니다.
/var/logs/tomcat5:

그런데 catelina.out 파일에는 로그가 쌓이는데, tomcat.log 파일엔 쌓이지도 않구요 당연히 syslog 로그로도 보내지지 않습니다.

고맙습니다.^^