如何为单个战争提供单独的tomcat日志

时间:2011-10-13 08:00:25

标签: tomcat logging

我正在使用单个战争,根据资源(即调用它的URL)以不同方式使用。

从webapps外部访问资源。

我需要维护单独的日志,以便可以单独维护所有日志。所以我需要有一个文件夹日志,例如webapps之外的资源文件夹。

1 个答案:

答案 0 :(得分:0)

好的,有一种方法可以使用log4j来做到这一点。我不是说这是最好的方法,但这种方法应该有效。这是一个起点。

下载log4j.jar并将其放入WEB-INF/lib

log4j.properties中有一个WEB-INF/classes。它看起来像这样

log4j.rootLogger=DEBUG, console

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n


log4j.logger.myoldsitelogger=DEBUG,myoldsite

# myoldsite writes to file
log4j.appender.myoldsite=org.apache.log4j.RollingFileAppender
log4j.appender.myoldsite.File=${catalina.base}/logs/tomcatlog4j.log
log4j.appender.myoldsite.MaxFileSize=100KB
log4j.appender.myoldsite.layout=org.apache.log4j.PatternLayout
log4j.appender.myoldsite.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n

log4j.logger.mynewsitelogger=DEBUG,mynewsite


# mynewsite writes to file
log4j.appender.mynewsite=org.apache.log4j.RollingFileAppender
log4j.appender.mynewsite.File=${catalina.base}/logs/tomcatlog4j_newsite.log
log4j.appender.mynewsite.MaxFileSize=100KB
log4j.appender.mynewsite.layout=org.apache.log4j.PatternLayout
log4j.appender.mynewsite.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p %c{1}]: %m%n

现在,从您的应用中,获取正确记录器的句柄

Logger logger = Logger.getLogger("myoldsitelogger");
Logger logger2 = Logger.getLogger("mynewsitelogger");

if(request.getParameter("oldsite") != null)
    logger.info("In my.jsp from oldsite");
else
    logger2.info("In my.jsp from newsite");

在您的日志文件夹中,您应该拥有名为tomcatlog4j.logtomcatlog4j_newsite.log的2个日志文件以及正确的消息。

即使没有log4j,也可以在Tomcat中执行此操作,但我还没有工作样本