将Tomcat控制台日志输出到文件

6

我正在使用Apache Tomcat 7。当我使用安全管理器并带有-Djava.security.debug参数运行Tomcat时,控制台输出了大量文本。我无法在控制台上阅读这些文本。因此,我需要将控制台日志记录到某个文件中。我该如何实现?


请查看 C:\Program Files\Apache Software Foundation\Apache Tomcat 7....\logs 目录下的 localhost...log 文件。 - OldCurmudgeon
3个回答

7

从日志配置中移除ConsoleHandler。在conf/logging.properties文件中:

将以下内容更改为 -

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

对于这个问题 -

.handlers = 1catalina.org.apache.juli.FileHandler

日志将保存在文件catalina.log中。


如果你想要为选定的应用程序禁用控制台日志记录,你可以在<Context>元素中设置swallowOutput为true。

...
<Context path="..." swallowOutput="true"> 
...

1
这对我在apache-tomcat-7.0.5\logs\catalina.2014-10-14.log中没有影响。 - Hariprasath

3

使用catalina.bat run命令可以在当前控制台中启动Tomcat而不是新的控制台,所以您可以使用以下命令将此命令的标准错误和标准输出流重定向到文件:

catalina.bat run > tomcat.log

我需要把这个命令放在哪里? - Hariprasath
@Hariprasath 是的,在命令提示符上。 - Ankur Singhal
但是命令提示符并没有运行,输入完该命令后它就卡住了。 - Hariprasath
@Hariprasath,它不会卡住,现在不会在控制台上打印任何内容,所有内容都将打印到“tomcat.log”文件中,请搜索该文件。 - Ankur Singhal
是的,谢谢。它已经记录在tomcat.log中,但我需要使用一些参数来运行tomcat,比如startup.bat -security。我该怎么做? - Hariprasath

1

对于Ubuntu用户,请使用以下命令:

  1. cd /opt/apache-tomcat-8.0.36/bin$
  2. ./catalina.sh run > tomcat.log

您将获得日志。运行此命令后,您将在/opt/apache-tomcat-8.0.36/logs文件夹下获取所有日志文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接