2011-10-13 69 views
1

我使用的单一战争取决于资源(即调用它的URL)以不同方式使用。如何为单一战争提供单独的tomcat日志

从webapps外部访问资源。

我需要维护单独的日志,以便所有的日志都可以单独维护。所以我需要为webapps之外的资源文件夹存放文件夹日志。

+0

默认情况下,'logs'文件夹是平行于'在CATALINA_HOME webapps'。那么为什么有什么特别需要?它已经在外面了。 – JoseK

+0

是否有可能为单个战争文件维护不同的日志? –

+0

基于某些软件包名称有区别吗?或基于什么? Log4J可以做到这一点 – JoseK

回答

0

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

下载log4j.jar,并把它放在你的WEB-INF/lib

在有一个WEB-INF/classeslog4j.properties。它看起来像这样

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{[email protected]: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{[email protected]: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{[email protected]: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个日志文件消息。

有可能是一个办法做到这一点在Tomcat中即使没有log4j的,但我没有工作示例但

+0

非常感谢JoseK –