更改 RollingFile log4j2 用变量写入日志的位置

Change where RollingFile log4j2 writes the log with variables

我需要能够修改我的 log4j2.xml 文件写入日志文件的位置。

我想创建一个与应用程序的 .jar ( my/path/app.jar ) 级别相同的文件夹来存储日志 ( my/path/logs/log1.log )。

问题在于我无法从文件中的 运行ning 中找到我的 jar(可能会有所不同)(如果我没有,我不想使用环境变量到)。你会怎么做?这是我的 log4j2.xml 文件

    <RollingFile name="rollingFile"
        fileName="my/path/application.log"
        filePattern="my/path/application.%d{dd-MMM}.log"
        ignoreExceptions="false">
        <PatternLayout>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n</Pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
        </Policies>
        <DefaultRolloverStrategy>
        <!-- Delete logs older than 60 days -->
            <Delete basePath="my/route/">
                <IfLastModified age="60d" />
            </Delete>
        </DefaultRolloverStrategy>
    </RollingFile>

我看到您可以使用 spring 变量,但我不想实现该云依赖性(因为我没有将其用于任何用途)。

并且在同一个问题中,如果在 IfLastModified 中添加文件夹的路径,我应该删除日志(在这种情况下每 60 天,不是吗?)

上下文:

欢迎任何想法,谢谢!

相对路径 (../path) 在您 运行 .jar.

的任何地方都有效