【问题标题】:How to put maven project version in log file name (log4j.xml)如何将 maven 项目版本放入日志文件名(log4j.xml)
【发布时间】:2015-09-04 10:17:26
【问题描述】:

我想根据maven项目版本生成日志文件。

在 log4j.xml 文件中,我添加以下行:

<appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${catalina.home}/logs/ussdMoneyTransfert_logFile${project.version}.log" />
</appender>

但它不起作用。

【问题讨论】:

  • 接受答案。如果它回答你

标签: maven maven-2 log4j2


【解决方案1】:

这可以通过启用resource filtering来完成:

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

启用资源过滤后,默认情况下,Maven 会将所有出现的${...} 替换为一个属性值(如果该名称存在的话)。属性可以来自系统属性、项目属性、过滤器资源和命令行。

${project.version} 是 Maven 在构建过程中添加的一个属性。过滤时会替换为当前的Maven项目版本。

【讨论】:

  • @AMALJERBI 很高兴为您提供帮助。如果这成功解决了您的问题,请考虑支持并接受此答案。
【解决方案2】:

在 springboot 中启用资源过滤后,我将 ${project.version} 更改为 @project.version@ ​​并且它工作正常!。

【讨论】:

  • 请在您的回答中添加更多上下文。
【解决方案3】:

答案很简单……假设你有一个 pom.xml 和 log4j2.yml

pom.xml

  <project xmlns="http://maven....Schema-instance"
    ....
    <artifactId>ArtifactName</artifactId>
    <version>2.36.2-SNAPSHOT</version>

@project.version@ 添加到日志文件名中,这会将版本附加到实际的日志文件名中。

log4j2.yml

Configuration:
  name: "AppName"
  monitorInterval: 30
  status: info
  ....
  RollingFile:
      - name: json-log-file
        fileName: "${sys:tomcat.log.dir}/${app_log}-@project.version@.log.json"
        filePattern: "${app_log}-@project.version@-%d{MM-dd-yyyy}-%i.log.gz"

如果你注意到这是直接从 pom.xml 中读取的,其中项目是父标签,版本是子标签。

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2014-11-08
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2012-04-08
    • 2015-03-13
    相关资源
    最近更新 更多