gpt4 book ai didi

tomcat - 为 accesslogvalve 目录使用环境变量

转载 作者:行者123 更新时间:2023-11-28 23:44:28 26 4
gpt4 key购买 nike

我想用 setenv.bat 中的值填充 accesslogvalve 中的“dir”。例如:

<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="${my.logs.dir}"
prefix="access_log"
fileDateFormat="yyyy-MM-dd.HH"
suffix=".log"
pattern="%t %H cookie:%{SESSIONID}c request:%{SESSIONID}r %m %U %s %q %r"/>

我在 setenv.bat 中指定了“my.logs.dir”


设置 my.logs.dir=C:\xyz\abc

当我启动 tomcat 时,我在 tomcat 安装下看到一个文件夹 ${my.logs.dir}。问题是 ${my.logs.dir} 在 tomcat 启动时没有被 env 变量替换。如果我给出像 dir="C:\xyz\abc" 这样的硬编码值,它工作正常。

谁能指导我在服务器启动时将 ${my.logs.dir} 替换为来自环境的值?

谢谢

最佳答案

我不认为环境变量在 Tomcat 配置文件中是默认可用的。但是,系统属性是。因此,如果您将变量添加为系统属性而不是环境变量,它应该可以工作。

如果您出于某种原因绝对必须使用环境变量,Tomcat 文档在其关于 System Properties 的部分中有对属性替换的引用可以设置为自定义 Tomcat 行为:

org.apache.tomcat.util.digester. PROPERTY_SOURCE

Set this to a fully qualified name of a class that implements org.apache.tomcat.util.IntrospectionUtils.PropertySource. Required to have a public constructor with no arguments.

Use this to add a property source, that will be invoked when ${parameter} denoted parameters are found in the XML files that Tomcat parses.

关于tomcat - 为 accesslogvalve 目录使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com