在Tomcat 7中,ServletContext.log消息存储在哪里?

3

我正在使用Java 7和Tomcat 7。在学习Servlet日志记录时,我编写了一个简单程序。

package net.codejava;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LogCheck
 */
@WebServlet("/LogCheck")
public class LogCheck extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public LogCheck() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    ServletContext context = getServletContext();
    String par = request.getParameter("msg");

    if (par == null || par.equals("")){
        context.log("No Message received",new IllegalStateException("Missing Parameter"));
    }else{
        context.log("Here is visitor's message:"+par);
    }

    PrintWriter out = response.getWriter();
    out.println("Log Testing.");

}

}

现在我能在Eclipse控制台中看到日志信息。 但是我在Tomcat Home / logs文件夹下没有看到任何文件?但是我读到应该将日志消息存储在某些日志文件中。 在我的情况下,我没有看到任何日志文件。

我是否缺少某些配置?请帮忙。

2个回答

4

这些信息将会被记录到文件 localhost.${today}.log 中。

正如Maks所说,ServletContext#log 会使用类别 org.apache.catalina.core.ContainerBase. 进行记录。当查看 Tomcat 的日志配置文件 conf/logging.properties 时,可以发现这些信息被发送到前缀为 localhost. 的文件中。


1

https://tomcat.apache.org/tomcat-7.0-doc/logging.html

调用javax.servlet.ServletContext.log(...)记录日志消息的操作由Tomcat内部日志记录处理。此类消息将被记录在名为org.apache.catalina.core.ContainerBase.[${engine}].[${host}].[${context}]的类别中。此日志记录根据Tomcat日志记录配置执行,您无法在Web应用程序中覆盖它。 日志存储位置
在Unix环境下运行Tomcat时,控制台输出通常会重定向到名为catalina.out的文件中。名称可以使用环境变量进行配置。
...
在Windows上作为服务运行时,控制台输出也会被捕获和重定向,但文件名不同。

1
当在Windows上作为服务运行时,控制台输出也被捕获和重定向,但文件名是不同的。这些文件在哪里可以找到? - user3427540
好的,我是Mac用户,所以我不知道,但你可以查看这个链接:https://dev59.com/H13Va4cB1Zd3GeqPEuSn - Maks

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