我正在使用单个战争,根据资源(即调用它的URL)以不同方式使用。
从webapps外部访问资源。
我需要维护单独的日志,以便可以单独维护所有日志。所以我需要有一个文件夹日志,例如webapps之外的资源文件夹。
答案 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.log
和tomcatlog4j_newsite.log
的2个日志文件以及正确的消息。
即使没有log4j,也可以在Tomcat中执行此操作,但我还没有工作样本