Loại câu đố ở đây.Cách xác định các biến trong xmls của mùa xuân để sử dụng trong log4j.properties
Tôi có một ứng dụng trong WAR. Có tệp web.xml và application.xml trong đó, và cũng có log4j.properties. WAR này chạy trong tomcat.
Có khả năng sử dụng một số biến trong log4j.properties, ví dụ: log4j.appender.file.File=${catalina.base}/logs/app.log
Tôi muốn xác định một biến trong web.xml hoặc context.xml và sử dụng nó trong log4j.properties. Ví dụ: bằng cách nào đó đặt version=1.1
và sử dụng log4j.appender.file.File=${catalina.base}/logs/app-${version}.log
. Nó không phải là một biến môi trường.
Tôi có thể làm điều đó mà không cần biên dịch lại ứng dụng không?
ADD không ảnh hưởng đến bất cứ điều gì, nhưng chỉ trong trường hợp ...
web.xml của nó trông như thế này:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:context.xml</param-value>
</context-param>
<!-- log4j -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
</context-param>
...
</web-app>
Không, không. Ít nhất trong tomcat-7.0.52 nó không đưa ra thông báo lỗi/cảnh báo, nhưng tạo ra 'logs/app-.log' thay vì dự kiến' logs/app-1.1.log' khi 'nhật ký/ứng dụng - $ {phiên bản} .log' được chỉ định. –
bạn đã thử đặt thuộc tính từ xml và truy cập thuộc tính từ tệp thuộc tính chưa? – javabot
ở trên làm việc cho tôi khi tôi kiểm tra. – javabot