设置 log4j2 日志文件的相对路径

wdc*_*wdc 5 java spring log4j log4j2

我使用 log4j2 进行以下配置的日志记录:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
    <Appenders>
        <Console name="LogToConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <File name="LogToFile" fileName="tomcat.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
    </Appenders>
    <Loggers>
        <Logger name="com.say" level="info" additivity="false">
            <AppenderRef ref="LogToFile"/>
            <AppenderRef ref="LogToConsole"/>
        </Logger>
        <Logger name="org.springframework.boot" level="error" additivity="false">
            <AppenderRef ref="LogToConsole"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="LogToFile"/>
            <AppenderRef ref="LogToConsole"/>
        </Root>
    </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,与定义将写入日志的文件相关的行是:

<File name="LogToFile" fileName="tomcat.log">
Run Code Online (Sandbox Code Playgroud)

这样我在项目文件夹中找不到任何日志。当我使用绝对路径时,我成功地生成了日志文件,但我希望它基于项目路径,并且我已经看到了该路径的示例,例如:logs/app.log所以我想可以设置它,我只是不确定为什么它对我不起作用。

这是一个在 ubuntu 16.04 上运行的 spring boot 项目。

小智 0

我会尝试 :

"./logs/tomcat.log" 
Run Code Online (Sandbox Code Playgroud)