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

Tomcat的access log的设置及存放日志路径修改

2017-06-05 14:51 513 查看
Tomcat中默认的情况下,access log是没有设置的。在server.xml文件中配置如下。

[html] view
plain copy

 print?

<!-- Access log processes all example.  

            Documentation at: /docs/config/valve.html -->  

       <!--  

       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"    

              prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>  

       -->  

一般情况下tomcat和apache是一起使用的,apache也有access log。tomca也设置的话是不是显得多余?

tomcat中的access log有一个优点是session ID也打印出来了。根据session ID可以有以下便利。

1,可以根据session ID来跟踪某个用户的画面操作。 

2, 如果出现错误的时候,可以根据session ID来再现。便于查找出错误的地方。

设置非常简单。

[html] view
plain copy

 print?

<!-- Access log processes all example.  

            Documentation at: /docs/config/valve.html -->  

       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"    

              prefix="localhost_access_log." suffix=".log" pattern="common" resolveHosts="false"/>  

Tomcat中的Access Log,缺省存放在logs目录下。这个目录会越来越大,如果访问量大的话,很快就会把硬盘挤满。

解决的方法有两种:

不要记录Access Log:注释掉server.xml中的<Valve>配置项
把Access log存放到其他地方,然后定期压缩归档:修改server.xml中<Valve>配置项中的“directory”参数,改为另外一个在大硬盘中的路径

如果是在运行中的系统,需要多做几步,先停止Tomcat、把Tomcat/logs中已经存在的Access Log文件移走、修改配置文件、然后重启Tomcat。一个具体的修改例子如下:

假设新存放路径是/opt/logs/access_logs,文件名前缀修改为xjj_access_log以免跟其他Tomcat的log混淆:

cd /opt/logs

mkdir access_logs

vim /opt/app/tomcat-xjj/conf/server.xml

修改:directory="/opt/logs/access_logs"
修改:prefix="xjj_access_log"

停止tomcat:/opt/app/tomcat-xjj/bin/shutdown.sh 无法停止?杀死:kill -9 <pid>

cd /opt/app/tomcat-xjj/logs

rename localhost_access_log xjj_access_log *.txt (用后缀.txt过滤出所有的access log文件,并批量重命名)

mv *.txt /opt/logs/access_logs/

重启tomcat:/opt/app/tomcat-xjj/bin/startup.sh 

然后,如果有需要,再另外写脚本定期压缩归档/opt/logs/access_logs中的文件(步骤略)。

附上
pattern


pattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern:
·        %a - 远端IP地址
·        %A - 本地IP地址
·        %b - 发送的字节数,不包括HTTP头,如果为0,使用"-"
·        %B - 发送的字节数,不包括HTTP头
·        %h - 远端主机名(如果resolveHost=false,远端的IP地址)
·        %H - 请求协议
·        %l - 从identd返回的远端逻辑用户名(总是返回 '-')
·        %m - 请求的方法(GET,POST,等)
·        %p - 收到请求的本地端口号
·        %q - 查询字符串(如果存在,以 '?'开始)
·        %r - 请求的第一行,包含了请求的方法和URI
·        %s - 响应的状态码
·        %S - 用户的session ID
·        %t - 日志和时间,使用通常的Log格式
·        %u - 认证以后的远端用户(如果存在的话,否则为'-')
·        %U - 请求的URI路径
·        %v - 本地服务器的名称
·        %D - 处理请求的时间,以毫秒为单位
·        %T - 处理请求的时间,以秒为单位
运行结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat