Java log4j记录器不';不要写入日志文件

Java log4j记录器不';不要写入日志文件,java,apache,spring-mvc,logging,spring-boot,Java,Apache,Spring Mvc,Logging,Spring Boot,我正在尝试在我的Spring Boot应用程序上配置一个记录器——我只是从Spring MVC 2迁移到Spring Boot。因此,所有配置都已就绪。我已经将log4j.properties文件放在应用程序类路径中,就在application.properties文件所在的位置 记录器类定义如下: public class Logger { public static void Log(String className, String methodName, String messa

我正在尝试在我的Spring Boot应用程序上配置一个记录器——我只是从Spring MVC 2迁移到Spring Boot。因此,所有配置都已就绪。我已经将
log4j.properties
文件放在应用程序类路径中,就在
application.properties
文件所在的位置

记录器
类定义如下:

public class Logger {

    public static void Log(String className, String methodName, String message, int loggingLevel) {

        Log4jLogger log4jLogger = Log4jLogger.getInstance();
        org.apache.log4j.Logger logger = log4jLogger.getLogger();

        switch (loggingLevel) {
            case 1: {
                logger.error(className + " | " + methodName + " | " + message);
                break;
            }

            case 2:

            case 3: {
                logger.info(className + " | " + methodName + " | " + message);
                break;
            }

            case 4:

            case 5: {
                logger.debug(className + " | " + methodName + " | " + message);
                break;
            }
        }
    }
}

import java.io.IOException;
import java.util.Properties;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4jLogger {

    private Logger logger;
    private static Log4jLogger log_instance;

    public Log4jLogger() {
        String logFileName;
        Properties properties = new Properties();
        try {
            properties.load(getClass().getClassLoader().getResourceAsStream("log4j.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        logFileName = properties.getProperty("log4j.appender.A2.file");
        if (logFileName.equals("")) {
            logFileName = "temp";
        } else {
            logFileName = logFileName.substring(logFileName.lastIndexOf("/") + 1, logFileName.lastIndexOf("."));
        }
        logger = org.apache.log4j.Logger.getLogger(logFileName);
        PropertyConfigurator.configure(properties);
        log_instance = this;
    }

    public static Log4jLogger getInstance() {
        if (log_instance == null) {
            log_instance = new Log4jLogger();
        }
        return log_instance;
    }

    public Logger getLogger() {
        return logger;
    }
}
对于任何需要记录器的类,我只需调用:

Logger.Log("ClassName", "MethodName", "message Start...", 5);
它以前常常登录文件
C:/logs/temp.log
,但它似乎不适用于Spring Boot。控制台上只打印信息日志

在此放置
log4j.properties的内容

# Log4j configuration file.
log4j.rootCategory=INFO, A1
log4j.logger.orion=DEBUG, A2
log4j.logger.orionJUnit=DEBUG, A3
log4j.appender.A1.Threshold=WARN
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p %d{ISO8601} [%t] - %m%n
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=C:/logs/temp.log
log4j.appender.A2.datePattern='.'yyyy-MM-dd
log4j.appender.A2.append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-5p %d{ISO8601} [%t] - %m%n
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=c:/temp1/logs/logs.log
log4j.appender.A3.datePattern='.'yyyy-MM-dd
log4j.appender.A3.append=true
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%-5p %d{ISO8601} [%t] - %m%n

有没有关于我可能缺少什么的指针?

尝试从pom文件中排除logbackJAR

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>

org.springframework.boot
SpringBootStarterWeb
回写
回归经典

您不必定义自己的
记录器
类。如果要创建新的记录器,可以在配置文件中创建。还有要记录的类,称它为
A
,执行类似于
Logger=Logger.getLogger(A.class)的操作检查第76.1.1节为链接中的仅文件输出配置logback不想替换旧代码,因此正在尝试使其工作。无论如何,我现在已经用@KishorRaskar提到的logback.xml替换了它