在我的maven
网络项目中,资源文件夹中有一个log4j.xml
<appender name="App" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${merchant.log.dir}/sys.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d - %c -%-4r [%t] %-5p %x - %m%n" />
</layout>
</appender>
并且在根目录中有一个application.properties
ls
application.properties pom.xml src target
此application.properties
文件中的具有此键值
merchant.log.dir=/foo/logs/merchant
和pom.xml
<filters>
<filter>application.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
当我开始使用jetty
项目时,它输出以下异常
java.io.FileNotFoundException: /foo/logs/merchant/sys.log (No such file or directory)
我很困惑log4j.xml
成功解决${merchant.log.dir}
的方式? log4j
自己做这项工作吗?或者Jetty在第一次阅读pom.xml
而不是用${merchant.log.dir}
/foo/logs/merchant
答案 0 :(得分:0)
在pom.xml
<!-- <filters> -->
<!-- <filter>application.properties</filter> -->
<!-- </filters> -->
然后启动项目,输出文件为/sys.log
。因此,必须在jetty开始时将${merchant.log.dir}
替换为merchant.log.dir
中application.properties
的值。
BTW修改pom.xml
后你必须明确执行maven --> Update Project
,否则它不会生效。