在外部配置tomcat localhost_access_log

时间:2012-03-15 16:11:26

标签: tomcat logging tomcat6

是否可以在不更改server.xml文件的情况下更改tomcats logs/localhost_access_log.*日志文件的位置?

最佳解决方案是SystemProperty或环境变量。我只是不想更改默认的tomcat安装,因为我推出了几十个tomcat到不同的主机,这使得这个过程很容易出错。

由于

2 个答案:

答案 0 :(得分:2)

通过以下步骤解决了这个问题:

  • 在部署时,将在tomcat_home/conf/Catalina/localhost/<contextpath>.xml

    中生成上下文文件

    &LT; Context path =“/ contextpath”&gt;         &LT; Valve className =“org.apache.catalina.valves.AccessLogValve”            可旋转=“假”            目录=“/ /目录/至/日志/到”            前缀=“访问日志”            后缀=“日志”            图案=“组合”     /&GT;

  • cron删除了tomcat_home/logs/localhost_access_log.*.txt文件,因为Context / Valve配置只是附加的,不会覆盖现有的AccessLogValve。

我知道这会写两次日志文件,你必须知道你的contextpath,这对我的用例来说都不是问题。另一个选择是删除server.xml中的完整Valve标记(它更改了server.xml但很容易自动化)。

答案 1 :(得分:0)

是的,它可能。详情如下 -
1在conf文件夹中创建catalina.properties
2在文件中创建变量

accesslog.file=my_access_log_file

3在server.xml中引用它作为

directory="logs"  prefix="${accesslog.file}" suffix=".log"