当 Tomcat 作为服务启动时,它会将其输出日志放入:
\logs\stderr.log
\logs\stdout.log
当 Tomcat 在 Windows 中以 BAT 形式启动时,如何写入此日志文件?
PS:我尝试使用以下命令启动 Tomcat:
call startup > ../logs/consolelog.log 2<&1
但输出consolelog.log
只有 5 行
Using CATALINA_BASE: "C:\Java\Tomcat 5.0"
Using CATALINA_HOME: "C:\Java\Tomcat 5.0"
Using CATALINA_TMPDIR: "C:\Java\Tomcat 5.0\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.5.0_22"
Using CLASSPATH: "C:\Java\Tomcat 5.0\bin\bootstrap.jar"
控制台中有很多输出
答案1
编辑conf/logging.properties
并更改此行
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
到
.handlers = 1catalina.org.apache.juli.FileHandler
那么它将只记录到catalina.<date>.log
,而不是控制台。
答案2
对于那些接受的答案不起作用的人:
我遇到了同样的情况,但我使用的是 (liferay -> tomcat) startup.bat,它总是打开 tomcat 控制台。编辑 startup.bat 文件以便将日志输出到文件中的方式如下:
寻找以下行:
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
并编辑它,使其看起来像这样:
call "%EXECUTABLE%" run >..\logs\outputfile.log 2>&1 start %CMD_LINE_ARGS% run >..\logs\outputfile.log 2>&1
您可以在 tomcat 的日志文件夹中找到输出。文件是 outputfile.log。解决方案是使用我在这一页,链接自本论坛。 祝你好运。
答案3
我没有仔细检查,但我认为您可以以标准 Windows 和 Unix 方式重定向控制台 I/O:
tomcart-start > C:\mylog\log.txt
答案4
据我了解,对于你的情况,我不会使用呼叫启动。
尝试:
catalina run > ..\logs\consolelog.all 2>&1
或者
catalina run > ..\logs\consolelog.out 2> ..\logs\consolelog.err
呼叫启动最后调用卡塔利娜开始,这将启动一个新的控制台。另一方面卡塔利娜河在同一个控制台中运行,您可以根据需要重定向 stdout 和 stderr。