您的位置:首页 > 运维架构 > Tomcat

tomcat 和 jboss access log 日志输出详解

2016-11-23 19:36 369 查看
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt179

工作中nginx+jboss/tomcat反向代理集成,想打开后端jboss的access log,

配置在:/home/admin/wdetail/conf/tomcat-server.xml

开启日志将下面内容的注释去掉:

<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">

prefix="localhost_access_log." suffix=".log"

pattern="common" directory="${jboss.server.home.dir}/log"

resolveHosts="false" />

pattern 项的修改,可以改变日志输出的内容。

该项值可以为: common 与 combined ,这两个预先设置好的格式对应的日志输出内容如下:

common 的值: %h %l %u %t %r %s %b

combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i

pattern的格式也可以自定义:

<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">

prefix="localhost_access_log." suffix=".log"

pattern="%{X-Real-IP}i %a %l %u %D %t %r %s %b %{Referer}i %{User-Agent}i" directory="${jboss.server.home.dir}/../logs" resolveHosts="false" />

这里log的路径可以更改:directory="${jboss.apphome.dir}/logs"

jboss.apphome.dir这个变量必须要到jbossctl里去定义,加到JAVA_OPTS里面去:

JAVA_OPTS="${JAVA_OPTS} -Djboss.apphome.dir=$BASE_HOME"

碰到问题,jboss记录的ip不是真实ip,需要在nginx上配置下:

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

pattern的详细说明

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html

%a 远端IP
%A 本地IP
%b 发送的字节数,不包含HTTP头,如果为0,使用”-”
%B 发送的字节数,不包含HTTP头
%h 远端主机名(如果resolveHosts=false),远端的IP
%H 请求协议
%l 从identd返回的远端逻辑用户名,总是返回’-’
%m 请求的方法
%p 收到请求的本地端口号
%q 查询字符串
%r 请求的第一行
%s 响应的状态码
%S 用户的sessionID
%t 日志和时间,使用通常的log格式
%u 认证以后的远端用户(如果存在的话,否则为’-’)
%U 请求的URI路径
%v 本地服务器的名称
%D 处理请求的时间,以毫秒为单位
%T 处理请求的时间,以秒为单位

参数/选项说明:

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”;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: