Mic*_*ael 20 java tomcat log4j
有没有办法将所有stdout输出记录到Tomcat中的catalina.log文件?(即所有打印到的System.out.println())
运行时打开的控制台窗口TOMCAT/bin/startup.bat显示stdout的输出,但它没有保存到TOMCAT/logs/catalina.<date>.log.
我的具体问题是我在log4j中定义了一个控制台appender以输出到控制台.这些日志消息在Tomcat控制台窗口中正确显示,但它们不会写入catalina.log.我在Windows上运行Tomcat 5.5.谢谢.
编辑:
这是我的log4j.properties文件.它位于TOMCAT/webapps/app/WEB-INF/classes/log4j.properties:
log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{ABSOLUTE} %-5p %c{1}]: %m%n
Run Code Online (Sandbox Code Playgroud)
Jos*_*seK 10
我之前遇到过类似的问题,除非您将Tomcat作为Windows服务运行,否则在Windows中记录System.out并没有找到办法.这似乎在默认情况下在UNIX环境中工作,因为startup.sh点到catalina.sh哪些日志标准输出到catalina.out文件中像下面
org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
Run Code Online (Sandbox Code Playgroud)
在log4j中,ConsoleAppender它本身不附加到文件,仅附加到 System.out
但是,我已经修改了你的log4j属性来添加FileAppender并且这个配置有效,但是当然这会记录到一个单独的日志文件中.
新配置
# Set root logger level to DEBUG.
log4j.rootLogger=DEBUG, console, myFile
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{ABSOLUTE} %-5p %c{1}]: %m%n
# myFile writes to file
log4j.appender.myFile=org.apache.log4j.RollingFileAppender
log4j.appender.myFile.File=logs/tomcatlog4j.log
log4j.appender.myFile.MaxFileSize=100KB
log4j.appender.myFile.layout=org.apache.log4j.PatternLayout
log4j.appender.myFile.layout.ConversionPattern==[%d{ABSOLUTE} %-5p %c{1}]: %m%n
Run Code Online (Sandbox Code Playgroud)
产量
= [15:24:03,819 INFO A1]:在my.jsp中= [15:24:03,975 INFO A1]:出于my.jsp = [15:24:04,880 INFO A1]:在my.jsp = [15: 24:04,880 INFO A1]:出自my.jsp
也看到了
您是否检查过,是否可以从您的应用程序中找到 log4j.properties 文件?也许您可以通过设置硬编码文件路径来检查,例如
-Dlog4j.configuration=文件:///C:\Dev\log4j.properties
如果在这些更改之后写入日志,则 log4j 文件的相对路径是错误的。
| 归档时间: |
|
| 查看次数: |
67890 次 |
| 最近记录: |