log4j没有打印出来?

发布于 2022-09-13 01:06:05 字数 2555 浏览 29 评论 0

后端用的是spring框架,
我这样封装了一个log4j类:

package cn.lai.App.Util;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class log4j {

    private static Logger logger = null;
    private static String loggerName = "ApplicationLogger";

    private void log4j(){
    }

    static {
        logger = LogManager.getLogger(loggerName);
    }

    public static Logger getLogger(){
        if (logger == null){
            logger = LogManager.getLogger(loggerName);
        }
        return logger;
    }

    public static void info(String msg){
        Logger log = getLogger();
        log.info(msg);
    }
}

在pom.xml中排除了不需要的logging,引入了log4j

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

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

    
</project>

然后在application.yml中定义了log4j配置文件的位置:

logging:
  config: classpath:log4j.properties

最后这样配了一个log4j.properties

log4j.rootLogger = ALL,stdout

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 = %c%d{yyyy-MM-dd HH:mm:ss,SSS}%m%n

程序里这样打印了:

import cn.lai.App.Util.log4j;

 log4j.info("这是一条测试数据");

结果并没有输出任何信息
为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷到爆炸 2022-09-20 01:06:05

解决了
log4j.properties中的格式是log4j1

pom中的log4j2改为log4j1就好了

如下:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.2.7.RELEASE</version>
        </dependency>
虐人心 2022-09-20 01:06:05
  1. 查看启动信息有没有关于日志的报错
  2. 除非有特殊需求,否则直接用 slf4j 的 Logger 和 LoggerFactory,需要日志的类自己用class 去 getLogger 即可
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文