log4j 无法在 spring 引导恢复 api 中创建日志文件

log4j could not create log file in spring boot resti api

我创建了 Spring 引导应用程序,还使用 ​​log4j 创建了记录器。 我已经尝试了所有可能的方法,但仍然无法生成日志文件。它只打印到控制台

这是我的log4j.properties

 log=/home/jayanes/projects/HSS/server/logs
log4j.rootLogger=INFO, file ,stdout
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=${log}/process.log
log4j.appender.file.Append=true
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n




log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

你能帮帮我吗?

如果您的 pom.xml 中有以下依赖项,那么 spring-boot 将使用嵌入在该依赖项中的自己的默认日志记录 (logback)(您可以检查 IDE在 dependency hierarchy 选项卡上):

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

为了禁用默认日志记录,您需要将其排除:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <!-- Need to exclude spring boot's default logger in order to use log4j -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

将此添加到 pom.xml 后,如果配置正确,您将能够看到来自 log4j 的日志。

我尝试了几种方法终于找到了解决方案

手动添加 import org.apache.log4j.BasicConfigurator; 库并在应用程序 运行 文件

中调用该库
  BasicConfigurator.configure();

添加此配置日志文件后,创建了我们想要的文件位置

谢谢