我有一个在 Windows 机器上作为服务运行的 tomcat 7。有一个滚动部署方案处于 Activity 状态,如果我将 war 文件放在 tomcat/webapps 文件夹中,它会自动解压缩并部署。我的 war 文件如下所示:
MyApp.war
+- META-INF
+- WEB-INF
+- classes
+ com.company... (the actual class files)
+-simplelogger.properties
+- lib
+- slf4j-api-1.7.12
+- slf4j-simple-1.7.12
+- web.xml
在我的 simplelogger.properties 中我有这个输出属性:
org.slf4j.simpleLogger.logFile=System.out
war 的先前版本使用 system.out.println()
进行“日志记录”,并将写入 sysout 的所有内容附加到文件 tomcat/logs/stdout .log
,所以我认为这是标准的 tomcat 行为。
不幸的是,我的新设置不起作用。日志记录不会出现在 stdout.log 文件中。当我使用 maven/tomcat 插件在 eclipse 中运行 war 时,它确实工作正常。
我错过了哪些配置细节?
我在 tomcat/conf
文件夹中查找任何处理日志记录的内容,我发现了以下内容:
- 在 catalina.properties 中:与日志无关。
- 在 server.xml 中:与日志无关
- logging.properties:我看到很多设置,但与 sysout 或 stdout.logs 无关。作为引用,这里是 full file .
最佳答案
您必须设置“控制台附加程序”以将 System.out 输出引导至日志文件。
log4j.xml 中的基本配置如下:
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
关于java - 在 Tomcat 上配置 simplelogger (slf4j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789794/