我使用的单一战争取决于资源(即调用它的URL)以不同方式使用。如何为单一战争提供单独的tomcat日志
从webapps外部访问资源。
我需要维护单独的日志,以便所有的日志都可以单独维护。所以我需要为webapps之外的资源文件夹存放文件夹日志。
我使用的单一战争取决于资源(即调用它的URL)以不同方式使用。如何为单一战争提供单独的tomcat日志
从webapps外部访问资源。
我需要维护单独的日志,以便所有的日志都可以单独维护。所以我需要为webapps之外的资源文件夹存放文件夹日志。
好的有一种方法可以使用log4j来做到这一点。我并不是说这是最好的方法,但是这种方法应该可行。这是一个起点。
下载log4j.jar
,并把它放在你的WEB-INF/lib
在有一个WEB-INF/classes
log4j.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.log
和tomcatlog4j_newsite.log
与右边的2个日志文件消息。
有可能是一个办法做到这一点在Tomcat中即使没有log4j的,但我没有工作示例但
非常感谢JoseK –
默认情况下,'logs'文件夹是平行于'在CATALINA_HOME webapps'。那么为什么有什么特别需要?它已经在外面了。 – JoseK
是否有可能为单个战争文件维护不同的日志? –
基于某些软件包名称有区别吗?或基于什么? Log4J可以做到这一点 – JoseK