Servlet+Tomcat如何输出日志?

使用Log4J

在《Servlet的监听》一文中我有讲到而且有DEMO,这是“标准”的日志用法了,在生产环境经常使用的。

ServletContext写日志

Servlet提供了自己的日志系统,当然它是由Web容器来实现的,接口如下:

    void javax.servlet.ServletContext.log(String arg0)

例如我在doGet()方法中加入日志

    getServletContext().log("日志日志顶呱呱");

如果你用的是Eclipse的Tomcat插件的话,会在Console输出

如果是独立的Tomcat,可以在Tomcat的目下找到类似/logs/localhost.xxxx-xx-xx.log的日志文件,其中有日志记录:

    .......
十月 10, 2014 4:20:56 下午 org.apache.catalina.core.ApplicationContext log
信息: 日志日志顶呱呱
...........

标准输出

可以使用标准输出,如

    System.out.println("日志日志顶呱呱");

如果你用的是Eclipse的Tomcat插件的话,会在Console看到日志,如果使用的是对立的Tomcat可以在其目录下的/logs/tomcatx-stdout.xxxx-xx-xx.log中找到日志记录。

自定义函数

但让你可以写个简单的自定义函数来实现日志输出

    private void print(String message) {
    PrintWriter out = null;
    try {
    out = new PrintWriter(new FileOutputStream("d:log.txt", true));
    out.println(message);
    out.close();
    } catch (FileNotFoundException e){
    e.printStackTrace();
    }
    }

第一种使用log4j适合用于生产环境,配置灵活;第二、三种方便简单,但日志比较混乱;第三种自定义实现,比较随意。

时间: 2024-09-20 23:07:27

Servlet+Tomcat如何输出日志?的相关文章

log-如何配置tomcat把访问日志也输出到tomcat命令窗口

问题描述 如何配置tomcat把访问日志也输出到tomcat命令窗口 目前我用的是tomcat7或8,请问各位配置把localhost_access_log.txt的日志也输出到tomcat命令窗口. tomcat命令窗口的日志存放在Tomcat 8.0logs目录下,该目录下有多个文件?,都是记录日志的,我发现 localhost_access_log.txt的?日志只会记录在该文件中,请问怎么配置让它也可以输出到tomcat命令窗口? 解决方案 配置Tomcat的访问日志格式化输出配置Tom

LOG4J输出日志到web目录的相对路径

 LOG4J输出日志到web目录的相对路径 项目中必须是在使用spring web.xml加入 <span style="font-size:18px;"><context-param> <param-name>webAppRootKey</param-name> <param-value>webApp.root</param-value> </context-param> <context-

MyBatis启动时控制台无限输出日志的原因及解决办法_java

你是否遇到过下面的情况,控制台无限的输出下面的日志: Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.lo

tomcat-如何配置Tomcat的启动日志,与log4j结合使用

问题描述 如何配置Tomcat的启动日志,与log4j结合使用 如何配置Tomcat的启动日志,与log4j结合使用,使用了一个免安装的tomcat,配置好java_home后 启动一下,一闪即过,没有日志 解决方案 Tomcat结合log4j定期清除日志使用log4j为Tomcat输出日志使用log4j为Tomcat输出日志 解决方案二: 多半是环境没有配置好,看看java环境变量配的对不对

启动tomcat控制器输出的翻译一下

问题描述 启动tomcat控制器输出的翻译一下 2014-12-17 15:59:56 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4.6. 2014-12-17 15:59:56 org.apache.catalina.core.AprLifecycleListener init 信息

Python同时向控制台和文件输出日志logging的方法

  本文实例讲述了Python同时向控制台和文件输出日志logging的方法.分享给大家供大家参考.具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG, forma

log4j直接输出日志到flume

log4j直接输出日志到flume         此jar是由Cloudera的CDH发行版提供的一个工具类,通过配置,可以将log4j的日志直接输出到flume,方便日志的采集.         在CDH5.3.0版本中是:flume-ng-log4jappender-1.5.0-cdh5.3.0-jar-with-dependencies.jar         所在目录是:/opt/cloudera/parcels/CDH/lib/flume-ng/tools/ 具体使用示例 log4j

运维部署-keepalived启动不输出日志?

问题描述 keepalived启动不输出日志? keepalived启动后,/var/log/messages什么都不输出,怎么搞啊? 解决方案 linux 下改 rsyslog.conf 或其中包含的目录文件 解决方案二: Log4J日志输出格式说明 解决方案三: 配置/etc/syslog.conf.

servlet-关于Servlet过滤器修改输出内容的疑惑

问题描述 关于Servlet过滤器修改输出内容的疑惑 如题,先上代码,代码很简单,一个将jsp输出内容转为大写字母的过滤器: ```public class UpperCaseFilter implements Filter { private HttpServletRequest request; private HttpServletResponse response; public void init(FilterConfig config) throws ServletException