zoukankan      html  css  js  c++  java
  • tomcat-日志修改

    tomcat日志配置参数及说明

    参数 说明
    className 实现的java类名,必须设置成org.apache.catalina.valves.AccessLogValve;
    directory 存放日志文件的目录;
    pattern 需要记录的日志信息的格式布局,如果是”common”或者”combined”,说明是使用的标准记录格式,也有自定义的格式;
    prefix 日志文件名的前缀,如果没有指定,缺省值是”access_log.;(要注意后面有个小点);
    resolveHosts 将远端主机的IP通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端主机的IP地址;
    sufix 日志文件的后缀名。(sufix=”.log”);也需要注意有个小点;
    rotatable 缺省值为true,决定日志是否要翻转,如果为false则永不翻转,并且忽略fileDateFormat,谨慎使用。
    condition 打开条件日志
    fileDateFormat 允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。'如果想每小时翻转一次,可以定义为“yyyy-MM-dd.HH”;'

    打印日志格式参数及说明

    • 具体的日志产生样式说明如下(从官方文档中摘录):
    参数 说明
    %a 远端IP地址
    %h 远端主机名(如果resolveHost=false,远端的IP地址)
    %A 本地IP地址
    %v 访问url名称信息
    %p 收到请求的本地端口号
    %b 发送的字节数,不包括HTTP头,如果为0,使用"-"
    %B 发送的字节数,不包括HTTP头
    %m 请求的方法(GET,POST,等)
    %U 请求的URI路径
    %q 查询字符串(如果存在,以 '?'开始)
    %H 请求协议
    %r 请求的第一行,包含了请求的方法和URI
    %s 响应的状态码
    %t 日志和时间,使用通常的Log格式
    %D 处理请求的时间,以毫秒为单位
    %T 处理请求的时间,以秒为单位
    %l 从identd返回的远端逻辑用户名(总是返回 '-')
    %S 用户的session ID
    %u 认证以后的远端用户(如果存在的话,否则为'-')
    • 另外还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。
    参数 说明
    %{xxx}i 记录客户端请求中带的HTTP头xxx(incoming headers)
    %{xxx}c 记录特定的cookie xxx
    %{xxx}r 记录ServletRequest中的xxx属性(attribute)
    %{xxx}s 记录HttpSession中的xxx属性(attribute)

    一、修改日志名称以及路径

    • catalina.out

    tomcat自身系统日志

    cat tomcat/bin/catalina.sh
     
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
    

    修改"$CATALINA_BASE"/logs为自定义日志路径,默认tomcat/logs

    • localhost_access_log.txt

    tomcat访问日志

    cat conf/server.xml
     
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
        prefix="localhost_access_log" suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    

    修改directory="logs"为自定义日志路径,默认tomcat/logs

    • catalina.log | localhost.log | manager.log | host-manager.log

    业务日志

    cat conf/logging.properties
     
    1catalina.org.apache.juli.AsyncFileHandler.level = FINE
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
     
    2localhost.org.apache.juli.AsyncFileHandler.level = FINE
    2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
     
    3manager.org.apache.juli.AsyncFileHandler.level = FINE
    3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
     
    4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
    4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
    

    修改${catalina.base}/logs为自定义日志路径,默认tomcat/logs/


    二、修改日志不按照日志分割

    localhost_access_log.txt

    cat conf/server.xml
     
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" rotatable="false"/>
    

    在结尾处,增加rotatable="false"来消除文件名中的日期

    • catalina.log | localhost.log | manager.log | host-manager.log

    业务日志

    cat conf/logging.properties
     
    1catalina.org.apache.juli.AsyncFileHandler.level = FINE
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
    1catalina.org.apache.juli.AsyncFileHandler.rotatable = false
     
    2localhost.org.apache.juli.AsyncFileHandler.level = FINE
    2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
    2localhost.org.apache.juli.AsyncFileHandler.rotatable = false
     
    3manager.org.apache.juli.AsyncFileHandler.level = FINE
    3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
    3manager.org.apache.juli.AsyncFileHandler.rotatable = false
     
    4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
    4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
    4host-manager.org.apache.juli.AsyncFileHandler.rotatable = false
    

    在每日志结尾处,增加 XXX.rotatable = false 来消除文件名中的日期.


    三、将访问日志修改为json格式

    • localhost_access_log.txt
    cat conf/server.xml
     
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="{&quot;Forward_addr&quot;:&quot;%{X-FORWARDED-FOR}i&quot; , &quot;remote_addr&quot;:&quot;%h&quot; , &quot;remote_user&quot;:&quot;%u&quot; , &quot;time_local&quot;:&quot;%t&quot; , &quot;http_host&quot;:&quot;%v:%p&quot; , &quot;request&quot;:&quot;%r&quot; , &quot;status&quot;:&quot;%s&quot; , &quot;body_bytes&quot;:&quot;%b&quot; , &quot;request_time&quot;:&quot;%T&quot;}" rotatable="false"/>
    
  • 相关阅读:
    python学习之路——匿名行数/函数递归与二分法
    python学习之路——作业 day16(18/10/10)
    python学习之路——global与nonlocal.py、装饰器
    python学习之路——命名关键字参数、函数对象、函数嵌套、名称空间与作用域、闭包函数
    matplotlib绘图库
    Java快速入门
    Eclipse常用快捷键
    Python网络爬虫-Scrapy框架
    Python网络爬虫-requests模块(II)
    Python网络爬虫-requests模块
  • 原文地址:https://www.cnblogs.com/taoyuxuan/p/12145204.html
Copyright © 2011-2022 走看看