如何在我的 spring 引导项目目录中创建日志文件?

How do I create log files inside my spring boot project directory?

如何在 spring 引导项目目录中创建日志文件?我想为错误和信息消息创建单独的文件。我正在使用 spring boot v. 2.5.

首先,添加log4j依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

然后使用以下 cinfig 在您的项目目录中创建一个 log4j.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
    <Property name="LOG_PATTERN">%highlight{%d -%r-%-5p %X{MdcHeader} %C{1.} - %m%n}{STYLE=Logback}</Property>

    <!--WINDOWS LOG DIRECTORY-->
    <Property name="logDirWindows">D:\myLogs\logger\</Property>
    <Property name="logDir">${logDirLinux}</Property>
</Properties>
<Appenders>
    <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </Console>

    <RollingRandomAccessFile name="MainLogger" fileName="${logDir}main.log" filePattern="${logDir}main.log.%d{yyyy-MM-dd}" bufferedIO="true" >
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </RollingRandomAccessFile>

</Appenders>


<Loggers>
    <Logger name="MainLogger" level="info" additivity="false">
        <AppenderRef ref="ConsoleAppender"/>
        <AppenderRef ref="MainLogger"/>
    </Logger>
    <Root level="info">
        <AppenderRef ref="ConsoleAppender"/>
    </Root>
</Loggers>

在配置文件中可以看到,我定义了一个存放日志的目录地址:

<Property name="logDirWindows">D:\myLogs\logger\</Property>