`

log4j 2使用的坑-log4j 2 多线程漏日志问题

 
阅读更多

经测试  log4j 2 版本在进行多线程输出时 会丢失打印。不知道是什么问题
@Test

public void test01() throws InterruptedException {

int threadSize = 5;

ExecutorService es = Executors.newFixedThreadPool(threadSize);

for (int i = 0; i < threadSize; i++) {

final int j=i;

es.submit(() -> {

Logger logger = LogManager.getLogger(Log4j2Test.class);

logger.warn("ABC"+j);

System.out.println(j);

 

});

}

es.shutdown();

es.awaitTermination(100, TimeUnit.SECONDS);

}

@Test

public void test02() throws InterruptedException {

int threadSize = 5;

ExecutorService es = Executors.newFixedThreadPool(threadSize);

for (int i = 0; i < threadSize; i++) {

final int j=i;

es.submit(() -> {

org.apache.log4j.Logger logger = org.apache.log4j.LogManager.getLogger(Log4j2Test.class);

logger.warn("ABC"+j);

System.out.println(j);

 

});

}

es.shutdown();

es.awaitTermination(100, TimeUnit.SECONDS);

}

 

分享到:
评论

相关推荐

    log4j2异步多线程打印

    2. `src/main/java`:源代码目录,包含了示例代码,可能有一个或多个类用于测试异步多线程日志输出。 3. `src/main/resources`:资源文件目录,可能包含`log4j2.xml`或`log4j2.json`这样的配置文件,用于设置Log4j2...

    log4j-API-最新稳定版本log4j-1.2.17

    标题提及的是"log4j-API-最新稳定版本log4j-1.2.17",这表明我们关注的是日志框架Log4j的一个特定版本,即1.2.17。Log4j是Apache软件基金会开发的一个用于Java应用程序的日志记录工具,它提供了灵活的日志记录功能,...

    日志-Apache-log4j2-Java-下载慢

    在“日志-Apache-log4j2-Java-下载慢”的问题中,可能涉及到以下几个关键知识点: 1. **日志框架的重要性**:在软件开发中,日志系统是不可或缺的工具,用于记录程序运行过程中的事件和异常信息,帮助开发者进行...

    Log4j多线程实践-LogTest

    2. **多线程日志** - 在多线程环境中,传统的日志记录可能会导致线程安全问题,例如多个线程同时写入同一个日志文件时的冲突。 - 为解决这个问题,Log4j提供了线程安全的解决方案,确保每个线程的日志记录互不影响...

    apache-log4j-2.0-rc1-src

    2. **配置文件**:Log4j使用配置文件(如log4j2.xml或log4j2.json)来定义日志输出的位置、格式和级别。这些配置可以动态更新,无需重启应用。 3. **Appenders**:Appenders是Log4j用来输出日志信息的组件,例如...

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    Log4j2是一款广泛使用的Java日志记录框架,它提供了高度可配置的日志记录功能,能够帮助开发者在应用程序中方便地记录、管理和分析日志信息。在“Log4j2实现不同线程不同级别日志输出到不同的文件中”这个主题中,...

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    Log4j2是Log4j的升级版本,它基于LMAX Disruptor的异步日志在多线程环境下性能远远优于Log4j 1.x和logback。 本文将详细介绍如何使用Slf4j集成Log4j2构建项目日志系统的完美解决方案。 背景: 随着项目的发展,对...

    apache-log4j-2.3-bin和commons-logging-1.2

    Apache Log4j 2.3 和 Commons Logging 1.2 是两个在Java Web开发中广泛使用的日志处理库。这两个库对于记录应用程序的运行时信息、调试错误和监控系统状态至关重要。 **Apache Log4j 2.3** Log4j 是 Apache 组织...

    log4j-core-2.7.zip

    这个库包含了Log4j2的主要实现部分,如日志记录器、配置解析器、插件系统等,它是使用Log4j2进行日志处理的基础。 描述中提到,Struts2版本2.5.10.1依赖于Log4j2,这意味着开发者在使用该版本的Struts2时,需要引入...

    log4j按功能保存日志

    Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...

    log4j 源码包 日志包 2.11.0

    Log4j 2.11.0作为一款优秀的日志框架,提供了一套完善的API,支持多级别的日志记录(如DEBUG、INFO、WARN、ERROR等)和多种输出格式。 2. **Log4j 2.11.0架构** Log4j 2.11.0采用模块化设计,主要包括配置器...

    log4j-2.0-alpha2

    **日志框架Log4j 2.0 Alpha2详解** 日志系统在软件开发中扮演着至关重要的角色,它能够帮助开发者追踪程序运行状态,定位错误和异常,从而提高调试效率。Log4j 2.0是Apache软件基金会开发的一个强大且灵活的日志...

    apache-log4j-2.0-rc2-bin.zi

    尤其是在多线程环境中,Log4j 2.0引入了异步日志记录模式。这种模式下,日志事件不是直接写入日志文件,而是放入一个队列,由后台线程进行处理。这样的设计减少了同步开销,极大地提高了并发性能,据称在某些测试...

    log4j2必需jar包

    它提供了比其前任log4j 1.x更多的功能和性能改进,是现代Java应用程序中广泛使用的日志工具。在给定的压缩包文件"log4j2必需jar包"中,包含了两个关键的JAR文件:log4j-api-2.11.1.jar和log4j-core-2.11.1.jar。这两...

    log4j2用户指南

    Log4j2 支持日志分离,即在一个应用程序中使用多个独立的日志记录配置: - **Separate ClassLoaders**:使用不同的类加载器隔离日志配置。 - **Separate Contexts**:每个配置使用独立的 LoggerContext。 #### 15....

    log4j简单使用

    - `log4j-1.2.14.jar`: 这是Log4j 1.2.14版本的jar包,包含了Log4j的全部类和方法,是使用Log4j进行日志记录的核心组件。 - `commons-logging-1.0.4.jar`: 这是Apache Commons Logging库,它是Java日志API的一个抽象...

    log4j-users-guide 用户手册

    Log4j 2 提供了一个强大且易于使用的 API,支持多种日志级别(例如 TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL),并允许通过不同的 Appenders 和 Layouts 来配置日志输出。 #### 6. 配置 Log4j 2 支持多种配置...

    log4j2-demo.rar

    1. 性能提升:Log4j2采用了异步日志处理机制,通过多线程和无锁数据结构,显著提高了日志记录的效率,尤其在高并发环境下,性能优势更为明显。 2. 动态配置:Log4j2支持动态更新配置,无需重启应用即可实时生效,...

    apache-log4j-2.0-beta9-bin.zip

    9. **日志事件的生命周期**:Log4j 2.0中的日志事件经历了创建、过滤、转换、路由和写入等多个阶段,每个阶段都可以有相应的插件进行处理。 10. **性能优化**:Log4j 2.0相比Log4j 1.x在性能上有显著提升,特别是在...

Global site tag (gtag.js) - Google Analytics