繁体   English   中英

在Ubuntu上记录Tomcat6

[英]Logging Tomcat6 on Ubuntu

我使用ubuntu和tomcat6作为我的服务器。 当我调用servlet或jsp页面时,“logger”(System.out.println())会登录到服务器/ var / log / syslog的syslog中。 我怎样才能改变这一点,服务器将在像catalina.out这样的自己的日志文件中写入?

问题是我的syslog中没有换行符(我在system.out中使用了\\ n),所以它看起来真的很“脏”。

你想看看log4j

http://logging.apache.org/log4j/1.2/manual.html

并设置一个log4j.properties,它将执行您希望它执行的操作。

通常,您不想使用System.out.println()..一切都应该通过log4j。 所以喜欢

logger.debug("whatever i am debugging");

logger.warn("danger!");

这样您就可以更改log4j级别并关闭调试垃圾邮件,而无需将其从代码中删除。

几种方式:

  1. 使用System#setOut()更改stdout的目标,最后也更改stderr。

     System.setOut(new PrintStream(new File("/new.log"))); 

    但不建议这样做。 不要这样做。 使用记录器。

  2. 配置webapp上下文以吞下输出。 <Context>元素的swallowOutput设置为true 这会将所有stdout / stderr重定向到Tomcat的日志文件。

     <Context swallowOutput="true"> 

    仍然没有真正推荐。 使用stdout / stderr而不是logger是一种不好的做法。 此外,这将使用特定于webapp的日志来混乱Tomcat的日志文件。 但如果这正是你所追求的......

  3. 用一个像(当前遗留的) log4j或其后继者slf4j这样的全功能记录器替换所有stdout / stderr调用,这使您可以在配置记录信息,记录目标,日志记录格式等方面获得高度自由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM