Tomcat日志目录的理解

来源:互联网 发布:如何用记事本编辑java 编辑:程序博客网 时间:2024/05/18 14:14

最近,使用tomcat做服务器,实现java web程序。当然,做程序嘛,难免有错误,但是出现了错误,最大的希望就是tomcat能够告诉我,错误到底是什么?


当然了,具体的错误种类太多,常见的有语法错误,这一点还好处理;上升到逻辑错误,就难了;再一个就是,对于tomcat加载application的过程不清楚的话,也会出现不符合约定的错误啦,这个就更加难了。


还在tomcat有日志功能,在很大程度上帮助我们分析错误,定位错误。

logs目录:

  1. catalina.2013-07-11.log:这个日志文件就是记录,当前servlet容器中加载的各applications,就是所有在webapps目录下的子目录。当然在你开启tomcat的那个时候,catalina.xxxx-xx-xx.log会被创建。然后,记录的信息如下:
    2013-7-11 8:54:23 org.apache.catalina.core.AprLifecycleListener init信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.6.0_10\bin;C:\CTeX\LOCALT~1\ty\bin;C:\CTeX\LOCALT~1\cct\bin;C:\CTeX\texmf\miktex\bin;C:\CTeX\gs\gs8.51\bin;C:\CTeX\WinEdt;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs,;d:\Program Files\Tencent\QQPCMgr\6.6.2159.401;C:\Program Files\EgisTec Port Locker\;d:\Program Files\MATLAB\R2011a\runtime\win32;d:\Program Files\MATLAB\R2011a\bin;F:\apache-ant-1.9.1\bin;d:\apache-maven-3.0.5\bin;E:\vim\GVimPortable;;.2013-7-11 8:54:24 org.apache.coyote.AbstractProtocol init信息: Initializing ProtocolHandler ["http-bio-8080"]
    这个时候,还没有任何一个servlet被加载。但是catalina这个servlet容器正在后台加载对应的servlets。
    d在数分钟后,你刷新logs目录,你就能看到catalina.xxxx-xx-xx.log内容有变化。如下:
    2013-7-11 9:02:39 org.apache.coyote.AbstractProtocol init信息: Initializing ProtocolHandler ["ajp-bio-8009"]2013-7-11 9:02:39 org.apache.catalina.startup.Catalina load信息: Initialization processed in 9393 ms2013-7-11 9:02:39 org.apache.catalina.core.StandardService startInternal信息: Starting service Catalina2013-7-11 9:02:39 org.apache.catalina.core.StandardEngine startInternal信息: Starting Servlet Engine: Apache Tomcat/7.0.272013-7-11 9:02:39 org.apache.catalina.startup.HostConfig deployDescriptor信息: Deploying configuration descriptor C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\DormManaSys.xml2013-7-11 9:02:39 org.apache.catalina.loader.WebappClassLoader validateJarFile信息: validateJarFile(E:\MDormintorySystem\DormManaSystem\WebRoot\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class2013-7-11 9:02:40 org.apache.catalina.startup.HostConfig deployDescriptor信息: Deploying configuration descriptor C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\ProjectOne.xml2013-7-11 9:02:40 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\bank2013-7-11 9:02:40 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\docs2013-7-11 9:02:40 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\host-manager2013-7-11 9:02:40 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager2013-7-11 9:02:41 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\myapp2013-7-11 9:02:41 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT2013-7-11 9:02:41 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\WebRoot2013-7-11 9:02:41 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["http-bio-8080"]2013-7-11 9:02:41 org.apache.coyote.AbstractProtocol start信息: Starting ProtocolHandler ["ajp-bio-8009"]2013-7-11 9:02:41 org.apache.catalina.startup.Catalina start信息: Server startup in 2047 ms
    这个时候,work目录下的catalina目录下,会对应产生相应的目录,但是目录下的内容是空的。我们知道Servlet的加载有两种情况,
    1. 在application的配置文件中,配置了load-on-startup选项为1;那么,就在servlet容器启动时候,就加载。
    2. Servlet在第一次被请求时,由servlet容器加载。(导致"第一次惩罚”问题)

  2. commons-daemon.xxxx-xx-xx.log:这个log文件的具体作用,我不明白,刚启动时候的情况时:
    [2013-07-11 09:09:43] [info]  Commons Daemon procrun (1.0.10.0 32-bit) started[2013-07-11 09:09:43] [info]  Running 'Tomcat7' Service...[2013-07-11 09:09:43] [info]  Starting service...[2013-07-11 09:09:44] [info]  Service started in 1109 ms.

  3. tomcat7-stdout.xxxx-xx-xx.log:这个log的作用是,当你的xxx.class文件中,有控制台的输出信息,那么当application部署到tomcat上,有访问的时候,这些控制台信息会被写入到这个log文件中。这一点非常重要奥,因为有了这个文件,你可以更加深入的分析你的程序的执行状况。
    2013-07-11 09:09:43 Commons Daemon procrun stdout initializedLogDate.txtthe water MARK file is located in C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT\waterMark.jpg2013-07-11 09:43:35 Commons Daemon procrun stdout initializedLogDate.txtthe water MARK file is located in C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT\waterMark.jpginitialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)the original file is located in /test.jpgnext will deal with image showedall files can be read!!!bla bla blaattribute ADDED(message  , Cannot call sendError() after the response has been committed)attribute ADDED(e , java.lang.IllegalStateException: Cannot call sendError() after the response has been committed)attribute ADDED(javax.servlet.error.exception , java.lang.IllegalStateException: Cannot forward after response has been committed)initialize the request from clientattribute REPLACED(org.apache.catalina.ASYNC_SUPPORTED , true)

  4. localhost_access_log.xxxx-xx-xx.txt:这个log文件是记录你浏览器发送的request。所有的requests信息都会记录其中,这样就可以分析访问状况;但是呢,对于错误信息什么的不做记录!!!
    127.0.0.1 - - [11/Jul/2013:09:44:24 +0800] "GET / HTTP/1.1" 200 415127.0.0.1 - - [11/Jul/2013:09:44:24 +0800] "GET /favicon.ico HTTP/1.1" 404 988127.0.0.1 - - [11/Jul/2013:09:49:55 +0800] "GET /choose.jsp HTTP/1.1" 200 646127.0.0.1 - - [11/Jul/2013:09:49:55 +0800] "GET /favicon.ico HTTP/1.1" 404 988127.0.0.1 - - [11/Jul/2013:09:49:56 +0800] "GET /favicon.ico HTTP/1.1" 404 988127.0.0.1 - - [11/Jul/2013:09:50:05 +0800] "GET /filter_image.jsp HTTP/1.1" 200 117127.0.0.1 - - [11/Jul/2013:09:50:05 +0800] "GET /favicon.ico HTTP/1.1" 404 988

  5. localhost.xxxx-xx-xx.log:这个文件是记录访问过程中发生的异常
    2013-7-11 10:06:16 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [default] in context with path [] threw exceptionjava.lang.IllegalStateException: Cannot forward after response has been committedat org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:339)at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)at test.Filter_Exception.doFilter(Filter_Exception.java:41)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at test.Filter_Log.doFilter(Filter_Log.java:49)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)
  6. host-manager.2013-07-11.log和manager.2013-07-11.log,还有tomcat7-stderr.2013-07-11.log的作用不明。望请赐教。
原创粉丝点击