认识Tomcat的日志

来源:互联网 发布:log4j源码分析 编辑:程序博客网 时间:2024/04/29 07:32
  • 一般的web服务器有两部分日志:
  1. 一是运行中的日志catalina.out,它主要记录运行的一些信息,尤其是一些异常错误日志信息。
  2. 二是访问日志信息access.`date +%F`.log,它记录的访问的时间,IP,访问的资料等相关信息。


  • 日志类别
  1. localhost.Y-M-D.log  
    1. 经常用到的文件之一 ,程序异常没有被捕获的时候抛出的地方
    2. Tomcat下内部代码丢出的日志
    3. jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!)
    4. 应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,而这些未处理异常最终会导致应用无法启动。

  2. catalina.out
    1. catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),
    2. 这是在tomcat的启动脚本里指定的,如果没有修改的话stdoutstderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。
    3. 另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。
    4. 比如以logback为例,如果配置ch.qos.logback.core.ConsoleAppender则会输出到catalina.out里。

  3. catalina.Y-M-D.log 
    1. tomcat自己运行的一些日志,这些日志还会输出到catalina.out
    2. 但是应用向console输出的日志不会输出到catalina.{yyyy-MM-dd}.log

  4. manager.Y-M-D.log
    1. 管理的日志
  5. host-manager.Y-M-D.log
    1. 虚拟主机方面
  6. localhost_access_log.Y-M-D.txt
    1. tomcat访问日志记录,需要配置


    • 日志的级别
    1. SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
    • 日志级别的设置
    1. 修改 conf/logging.properties 中的内容,设定某类日志的级别
    2. 设置 catalina 日志的级别为: FINE
      1. 1catalina.org.apache.juli.FileHandler.level = FINE

    3. 禁用 catalina 日志的输出:
      1. 1catalina.org.apache.juli.FileHandler.level = OFF

    4. catalina所有的日志消息均输出:
      1. 1catalina.org.apache.juli.FileHandler.level = ALL


        • logging.properties 配置详解
        1. # Licensed to the Apache Software Foundation (ASF) under one or more
        2. # contributor license agreements. See the NOTICE file distributed with
        3. # this work for additional information regarding copyright ownership.
        4. # The ASF licenses this file to You under the Apache License, Version 2.0
        5. # (the "License"); you may not use this file except in compliance with
        6. # the License. You may obtain a copy of the License at
        7. #
        8. # http://www.apache.org/licenses/LICENSE-2.0
        9. #
        10. # Unless required by applicable law or agreed to in writing, software
        11. # distributed under the License is distributed on an "AS IS" BASIS,
        12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        13. # See the License for the specific language governing permissions and
        14. # limitations under the License.
        15. #可配置项(5类日志):catalina、localhost、manager、admin、host-manager
        16. handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
        17. .handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
        18. ############################################################
        19. # Handler specific properties.
        20. # Describes specific configuration info for Handlers.
        21. ############################################################
        22. #日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)#配置文件使catalina日志输出级别为FINE
      1. 1catalina.org.apache.juli.AsyncFileHandler.level = FINE
      2. #catalina文件输出位置
      3. 1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
      4. #catalina日志前缀为catalina
      5. 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
      6. #配置文件使localhost日志输出级别为FINE
      7. 2localhost.org.apache.juli.AsyncFileHandler.level = FINE
      8. #localhost文件输出位置
      9. 2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
      10. #localhost日志前缀为localhost
      11. 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
      12. #配置文件使manager日志输出级别为FINE
      13. 3manager.org.apache.juli.AsyncFileHandler.level = FINE
      14. #manager文件输出位置
      15. 3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
      16. #manager日志前缀为manager
      17. 3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
      18. #配置文件使host-manager日志输出级别为FINE
      19. 4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
      20. #host-manager文件输出位置
      21. 4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
      22. #host-manager日志前缀为host-manager
      23. 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
      24. #配置文件使控制台日志输出级别为FINE
      25. java.util.logging.ConsoleHandler.level = FINE
      26. #控制台日志输出格式
      27. java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
      28. ############################################################
      29. # Facility specific properties.
      30. # Provides extra control for each logger.
      31. ############################################################
      32. #localhost日志文件输出级别为INFO
      33. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
      34. #localhost日志文件输出处理类2localhost.org.apache.juli.FileHandler
      35. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
      36. #manager日志文件输出级别为INFO
      37. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
      38. #manager日志文件输出处理类3manager.org.apache.juli.FileHandler
      39. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
      40. #host-manager日志文件输出级别为INFO
      41. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
      42. #host-manager日志文件输出处理类4host-manager.org.apache.juli.FileHandler
      43. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
      44. # For example, set the org.apache.catalina.util.LifecycleBase logger to log
      45. # each component that extends LifecycleBase changing state:
      46. #org.apache.catalina.util.LifecycleBase.level = FINE
      47. # To see debug messages in TldLocationsCache, uncomment the following line:
      48. #org.apache.jasper.compiler.TldLocationsCache.level = FINE
        阅读全文
        '); })();
        0 0