【发布时间】:2012-04-01 04:40:32
【问题描述】:
是否可以在不更改server.xml文件的情况下更改tomcatslogs/localhost_access_log.*日志文件的位置?
最佳解决方案是 SystemProperty 或环境变量。我只是不想更改它的默认 tomcat 安装,因为我将几十个 tomcat 部署到不同的主机,这使得这个过程很累而且容易出错。
谢谢
【问题讨论】:
是否可以在不更改server.xml文件的情况下更改tomcatslogs/localhost_access_log.*日志文件的位置?
最佳解决方案是 SystemProperty 或环境变量。我只是不想更改它的默认 tomcat 安装,因为我将几十个 tomcat 部署到不同的主机,这使得这个过程很累而且容易出错。
谢谢
【问题讨论】:
通过以下步骤解决了这个问题:
部署时会在tomcat_home/conf/Catalina/localhost/<contextpath>.xml 中生成一个上下文文件:
tomcat_home/logs/localhost_access_log.*.txtfiles 的 cron,因为 Context/Valve 配置只是附加的,不会覆盖现有的 AccessLogValve。我知道这会将日志文件写入两次,并且您必须知道您的上下文路径,这对我的用例来说都不是问题。另一种选择是删除 server.xml 中的完整 Valve 标记(它会更改 server.xml,但很容易自动化)。
【讨论】:
是的,有可能。详情如下 -
1 在 conf 文件夹中创建 catalina.properties
2 在文件中创建变量
accesslog.file=my_access_log_file
3 在server.xml中引用为
directory="logs" prefix="${accesslog.file}" suffix=".log"
【讨论】: