log4j默认配置

记一次惨痛的教训- log4j2 实际使用详解-xml配置 刚上手log4j2 ,就想着跑一个小的demo,但是出现了问题。配置的一步中有要进行xml文件的创建,我是这么创建的: 设置好名称后,然后选择xml: 出来的结果是线下图的那个log4j2文件,注释注意,是那个不带xml后缀的那个。然后我就傻乎乎的跑测试用例,就结果就是找不到那个xml位置。 报错:ERROR StatusLogger No Log4j 2 configuration file... 阅读详情
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {

    public static void main(String[] a) {
        Logger logger = LoggerFactory.getLogger(String.class);
//        Logger logger = LogManager.getLogger();
        logger.error("123");
    }

}
// 结果打印如下
log4j:WARN No appenders could be found for logger (java.lang.String).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LogTest {

    public static void main(String[] a) {
//        Logger logger = LoggerFactory.getLogger(String.class);
        Logger logger = LogManager.getLogger();
        logger.error("123");
    }

}

// 结果打印如下
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
21:46:10.903 [main] ERROR LogTest - 123

依赖配置如下

    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.0</version>
        </dependency>

        <!-- slf4j与log4j之间的桥接包-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>

以上两次结果是在未配置log4j对应的配置文件的情况下运行得到
第一种是使用slf4j的方式获取logger,获取logger方式有所不同,没有使用log4j2的默认logger
第二种是使用的log4j的API,也警告了相关信息,使用默认配置

下面看一下第三种运行结果:
使用的demo是第二组代码,这里只提供了一个空的配置文件log4j2.xml,但是未提供logger

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
</Configuration>

在这里插入图片描述看一下启动时的log4j输出日志,可以看到以上信息,采取了默认配置,然后我们跟一下源码

    public DefaultConfiguration() {
        super(null, ConfigurationSource.NULL_SOURCE);
        setToDefault();
    }

    protected void setToDefault() {
        // LOG4J2-1176 facilitate memory leak investigation
        setName(DefaultConfiguration.DEFAULT_NAME + "@" + Integer.toHexString(hashCode()));
        final Layout<? extends Serializable> layout = PatternLayout.newBuilder()
                .withPattern(DefaultConfiguration.DEFAULT_PATTERN)
                .withConfiguration(this)
                .build();
        // 默认输出到控制台
        final Appender appender = ConsoleAppender.createDefaultAppenderForLayout(layout);
        appender.start();
        addAppender(appender);
        // 默认取根logger
        final LoggerConfig rootLoggerConfig = getRootLogger();
        rootLoggerConfig.addAppender(appender, null, null);
		// 默认日志级别为error
        final Level defaultLevel = Level.ERROR;
        final String levelName = PropertiesUtil.getProperties().getStringProperty(DefaultConfiguration.DEFAULT_LEVEL,
                defaultLevel.name());
        final Level level = Level.valueOf(levelName);
        rootLoggerConfig.setLevel(level != null ? level : defaultLevel);
    }

OVER

Log4J2源码系列(九) - 没有配置文件也能打印日志? 默认配置怎么创建的? 自定义配置文件解析失败,为什么应用程序还是能打印日志呢?从源码的角度来分析默认配置创建的时机,作用 以及默认配置的关键配置项 阅读详情

相关推荐

SAP ABAP MIGO增强实战:自定义页签与字段的完整实现指南

本文详细介绍了SAP ABAP中MIGO增强的实战指南,包括自定义页签与字段的完整实现步骤。通过BADI增强技术,开发者可以快速满足企业个性化需求,如添加供应商批次号等特殊字段。文章涵盖数据存储结构设计、BADI框架实现、核心方法编写及数据持久化方案,帮助用户高效完成MIGO屏幕增强开发。

study的专栏 774

idea报错ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging on

问题现象: 记一次在idea上运行调试代码的时候报的一个错,报错如下: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property ‘log4j2.debug’ to show Log4j2 internal initialization logging. 原因: 在pom.xml文件中导

weixin_43230682的博客 1万+

CAD文件转换避坑指南:Inventor导出STP时这些设置千万别忽略

本文深入解析了使用Autodesk Inventor导出STP文件时的关键设置与避坑指南。重点探讨了应用协议选择、样条曲线拟合精度对几何保真度的影响,以及装配体结构和元数据的保全策略,旨在帮助用户实现高质量、零误差的CAD数据交付,避免下游软件打开时出现特征丢失或曲面破碎等问题。

weixin_29214559的博客 518

Hibernate测试报错:ERROR StatusLogger No log4j2 configuration file found.

报错源码:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization l...

qq_41323013的博客 1273

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1104

springboot整合log4j2不成功

springboot整合log4j21、问题2、解决问题(1) pom.xml文件配置(2) application.yml文件配置 1、问题 springboot自带日志logback,但是我还是比较习惯使用log4j,不知道从啥版本开始,springboot不支持log4j了,在使用log4j2的时候遇到了一点小问题,在这里记录一下。 控制台提示信息如下: ERROR StatusLogg...

SGdan_qi的博客 7679

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2284

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only er

错误:ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization loggin

qq_40853933的博客 8492

解决DevExpress汉化后不生效的5个常见问题及修复方法

本文详细解析了DevExpress汉化后不生效的5个常见问题及修复方法,包括汉化包部署位置验证、运行时缓存清除、权限与执行上下文排查、版本兼容性检测以及开发环境配置检查。通过实战案例和具体操作步骤,帮助开发者快速解决汉化失效问题,提升开发效率。

weixin_29232121的博客 262

洪水风险图制作全流程:HEC-RAS 与 ArcGIS 的耦合应用

本文系统介绍HEC-RAS水动力模拟软件在水利工程中的应用技术。内容涵盖:1)软件理论与安装;2)一维地形数据导入与河网构建;3)恒定流/非恒定流计算及模型调试要点;4)构筑物建模技术(桥梁、堰闸等);5)二维水动力模拟与溃坝分析;6)洪水风险图绘制。重点讲解水面线调试、糙率选取、报错分析等实操难点,通过案例教学实现从基础到工程应用的全流程技术掌握。该培训适用于防洪评价、河道治理等水利工程数值模拟需求。

2403_89974123的博客 1053

log4j配置文件log4j.properties的默认路径问题

log4j.properties log4j.xml 路径问题 在以前的项目里总是在Listener里配置(PropertyConfigurator.configure(“log.properties”)) log 的配置文件或者基于Spring的Log4jConfigListener加载,web.xml 设置。今天在一个项目中遇到一个问题,没有任何地方配置log4j的配置文件。只是在src目录下

hihi_chen的专栏 6227

基于YOLOv8的铁路轨道异物检测系统设计与实现

目标检测是计算机视觉领域的核心任务之一,旨在识别图像中特定目标的位置和类别。传统方法主要依赖手工特征(如HOG、SIFT等)和分类器(如SVM),而深度学习方法通过卷积神经网络自动学习特征表示,显著提升了检测性能。YOLO(You Only Look Once)系列算法作为单阶段目标检测的代表,以其高效的检测速度著称。YOLOv8是Ultralytics公司于2023年发布的最新版本,在精度和速度上都有进一步提升。

YOLO 575

Log4j2默认配置日志打印

Log4j2默认配置日志打印

Leon_Jinhai_Sun的博客 475

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

spring boot默认日志配置,以及改用log4j日志配置

1、logging.config配置不起作用的原因 application.properties中有个一logging.config的配置,这个属性后面跟的日志配置文件必须是.xml结尾的。否则不起作用。 2、spring-boot 使用其他日志时,日志配置文件不起作用 创建Spring Boot工程时,我们在pom.xml文件中引入的spring-boot-starter包含了spring

yanweihpu的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

这是log4j默认的配置

这是log4j默认的配置,我们先熟悉一下 参数都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出): %c 输出所属类的全名,可在修改为 %d{Num} ,Num类名...

志诚自制-2011,时间管理、效率为王 294

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

log4j改变配置文件默认位置:

log4j改变配置文件默认位置: org.apache.log4j. PropertyConfigurator.configure("/conf/log4j.properties");

iteye_9128的博客 201

Log4j2介绍和特性实例(六)--配置文件不在默认路径下的加载

Log4j2介绍和特性实例(六)--配置文件不在默认路径下的加载 转载:https://blog.csdn.net/chenhaotong/article/details/50528090 1. Log4j2配置文件的默认路径是src文件夹,如果打包程序的话,配置文件会被写死到Jar包中,用户不能随时修改配置文件。 因此,如果把配置文件放到项目的根路径下,则程序打包后,配置文件可以与...

stay hungry ! stay foolish! 774

log4j配置获取系统属性及默认值

一、使用场景   1.因某些原因,我们可能将log4j中的配置变量化,进行动态获取   2.动态获取内容不存在时,我们希望能够赋上通用的值 二、语法 单变量: ${前缀:变量:-默认值}   如:   ${sys:i2cc.base.dir:-/tmp/i2cc}/logs 多个候选变量:     ${前缀:变量:-${前缀:变量:-...

ancongxie6976的博客 2257

SpringBoot默认日志配置文件 logback.xml(log4j+logback)

【代码】SpringBoot默认日志配置文件 logback.xml(log4j+logback)

weixin_44877172的博客 422

log4j更改配置文件log4j.properties的默认路径

log4j的配置文件放在classpath下会被自动加载,但是更换路径就不会去加载了。下面给出解决办法: 1.编写servlet,并随着server启动加载。代码如下:              public class FileThreadServlet extends HttpServlet {        public void init(){         String

tianyehappy的专栏 4014

log4j2使用入门示例

maven依赖: <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.2&l...

SJZYLC的专栏 418

更改log4j的默认配置文件路径

有时候可能会有多个项目,想要共同用一个log4j的配置文件,使用环境变量或数据库比较容易动态修改路径。 package test; import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; public class Log4jTest { static{

littlehow的专栏 5966

spring mvc 小记(二):关于log4j的配置

使用spring mvc已有2年之久,却还是停留在使用阶段,感觉这么下去不是办法,所以还是想往深处一探究竟。 在倒腾AOP切面的时候,突然发现了一个问题,在框架中使用了log4j,项目启动时也会有相应的日志打印,而且是我自己配置的log4j.properties里的内容。这不是很正常吗?不是,很不正常,因为我在web.xml里的log4j的监听器和log4jConfigLocation配置路径已

平凡的世界 435
上一篇: log4j2配置解析
下一篇: log4j是如何获取logger的
MrMoving
博客等级 码龄10年 54粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值