gpt4 book ai didi

java - Tomcat:日志记录的建议

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:41:37 25 4
gpt4 key购买 nike

我在这里阅读了几个关于 Tomcat 和日志记录的问题,但我仍然真的不理解“大局”,因此我的问题是:

我的 Web 应用程序应该如何以及在哪里进行日志记录?

默认情况下,在我的设置中,Tomcat 6.0.20 日志进入以下文件/附加程序:

./apache-tomcat-6.0.20/logs/catalina.out

我应该让我的网络应用程序也登录到这个文件/附加程序吗?

假设我的情况非常简单,我只有一个 servlet:

import ... // What do I import here in order to be able to log?

public class SOServlet extends HttpServlet {

public void doGet(
final HttpServletRequest request,
final HttpServletResponse response
) throws IOException, ServletException {
... // I want to log here, what do I write?

知道在同一个 Tomcat 上运行多个 Web 应用程序会遇到什么问题? (显然,从阅读各种问题来看,有很多陷阱)。

关于 .war,我需要将 log4j/sl4f/commons-logging/whatever 放入我的 .war 中吗?

例如,我读过它,但我比以前更加困惑:

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

最佳答案

How and where are my Webapps supposed to do their logging?

这取决于。您可以使用 ServletContext#log() (这又可以通过继承的 getServletContext() 方法在 servlet 中使用)将其记录到与 servletcontainer 本身相同的日志文件中,或者在每个 slf4j 和/或 logback/log4j 的帮助下寻找单独的记录器/日志文件。通常的做法是为每个 Web 应用程序提供自己的记录器,以便您在记录时有更多的自由和控制权。

对于您感兴趣的案例,here是关于该主题的 Tomcat wiki。

What are the gotchas knowing that there are more than one webapp running on the same Tomcat? (apparently from reading the various questions there are many gotchas).

如果这与日志记录有关:您最终会在日志文件中看到糟糕的概览,并且在记录各个 Web 应用程序时的自由度和控制力也会降低。

What about the .war, do I need to put log4j/sl4f/commons-logging/whatever in my .war?

不管使用的库是什么:如果它是特定于 webapp 的,就把它放在 WAR 中。如果它对所有 web 应用程序都是通用的,请将其放在应用程序服务器的通用库中。如果它是特定于应用服务器的,则将其放入应用服务器的库中。

关于java - Tomcat:日志记录的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2576957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com