log4j的WriterAppender的应用

这几天做项目,需要做一个类似于控制台的界面,可以将日志回显到一个文本区域里,几经查找,反复测试写了以下测试代码。
这是log4j.properties的配置内容

log4j.rootCategory= ,WriterAppender
log4j.appender.WriterAppender=org.apache.log4j.WriterAppender
log4j.appender.WriterAppender.Threshold=debug
log4j.appender.WriterAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.WriterAppender.layout.ConversionPattern=%d{ISO8601} - %p - %m%n

主程序

import java.io.PipedReader;
import java.io.PipedWriter;
import java.io.Writer;

import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.WriterAppender;

public class Log4jMain {
    static public Logger logger = Logger.getLogger(Log4jMain.class);

    public static void main(String[] arg) {
       
       
        Logger root = Logger.getRootLogger();
        try {
            Appender appender = root.getAppender("WriterAppender");
            PipedReader reader = new PipedReader();
            Writer writer = new PipedWriter( reader) ;
       
            ((WriterAppender) appender).setWriter(writer);
           
            Thread t = new AaaThread(reader);
            t.start();
            Logger logger = Logger.getLogger(Log4jMain.class);
            logger.error("asdf");
            logger.info("asdf");
            logger.debug("asdf");
            logger.fatal("asdf");
                //hh是一个class,test方法里只有几个logger.info("aaa"),用于测试用,这东西可以去掉
            new HH().test();

        } catch (Exception e) {
        }    }
   
}

       因为log4j提供的是 Writer,所以通过使用PipedWriter连接到PipedReader,并通过一个thread来处理 PipedReader的数据就可以回显了。如果你需要的话可以将下面的 System.out.println(scanner.nextLine());改成你需要显示的地方就行了。

import java.io.PipedReader;
import java.util.Scanner;public class AaaThread extends Thread {
    PipedReader reader;    public AaaThread(PipedReader reader) {
        this.reader = reader;
    }    public void run() {
        Scanner scanner = new Scanner(reader);
        while (scanner.hasNext()) {
            System.out.println(scanner.nextLine());
        }
    }
}
Log4jToWriterAppender.zip 本工程用于研究log4j日志输出目的地org.apache.log4j.WriterAppender的使用方法 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 立即下载

相关推荐

老N卡福音:GT1030/GTX1050在MacOS Ventura 13.2上的完整驱动指南(附实测截图)

本文详细介绍了如何在MacOS Ventura 13.2上通过OCLP工具链驱动GT1030和GTX1050等老款NVIDIA显卡,涵盖硬件兼容性验证、BIOS设置、OpenCore配置、驱动安装及性能测试全流程。实测数据显示,这些基于Pascal和Maxwell架构的显卡在当代MacOS系统中仍能发挥实用价值,为老N卡用户提供完整解决方案。

weixin_30832143的博客 632

log4j中appender的简介说明

log4j中appender的简介说明

qq_25073223的博客 2019

合宙ESP32C3实战:MPU6500六轴传感器数据读取与校准全解析

本文详细解析了如何使用合宙ESP32C3开发板读取和校准MPU6500六轴姿态传感器数据。从硬件接线、开发环境搭建到核心代码解析,提供了全面的实战指南,帮助开发者快速掌握传感器配置与数据处理技巧,适用于姿态控制、运动检测等应用场景。

weixin_27066963的博客 404

基于AI智能体的项目依赖自动化诊断与修复系统构建指南

在软件开发中,依赖管理是保障项目可复现性和稳定性的基础环节。其核心原理在于通过声明式文件(如requirements.txt、package.json)锁定第三方库的版本,构建隔离的虚拟环境以避免冲突。有效的依赖管理技术能显著提升开发效率、确保团队协作一致性,并减少“在我机器上能运行”的问题。随着项目复杂度增加和依赖生态的演变,手动处理版本冲突、环境配置错误和网络安装失败变得异常耗时。AI智能体技术为解决此类工程痛点提供了新思路。通过结合大语言模型的推理能力与自动化工具调用,可以构建能够感知项目状态、分析依

weixin_30321449的博客 749

增量式PID的P和I怎么理解(一)

增量式PID的P、I理解之推翻片 据我所知的资料里关于PID三个参数的理解是这样的:(我这里只说P和I,先不说D) P的作用:比例P可以加快系统调节速度,P过小调节时间变长,响应性不够,P越大响应性越高超调也越严重,过大的P会使系统振荡。 I的作用:消除静差,提高控制精度,I越大越滞后,过大会使系统振荡。 ...

fangchenglia的博客 1万+

Hadoop实战:用MapReduce分析YouTube视频数据集(附完整代码)

本文提供了一个完整的Hadoop MapReduce实战教程,指导读者使用MapReduce框架分析YouTube视频数据集,统计不同视频类别的数量分布。教程涵盖从数据获取、预处理、HDFS操作到Java代码编写、作业提交及结果可视化的全流程,并附有完整代码,帮助开发者深入理解分布式计算思想。

lilh34434的博客 198

Log4J学习【十九】常用的Appender之WriterAppender

首先来看WriterAppender,WriterAppender是一个非常基础的Appender,他可以将LoggingEvent合成的结果直接交给一个Writer对象去处理。通过这个描述,其实我们也能很简单的想到,WriterAppender是不能通过配置脚本来完成配置的,只能允许通过代码的方式指定要输出的Writer。那为什么我们还要学习WriterAppender呢?其实很简单,因为他是后

andyzhaojianhui的专栏 2867

UE4免费资产库新玩法:Quixel Bridge插件安装与Megascans资源导入全攻略

本文详细介绍了如何在UE4中安装Quixel Bridge插件并导入Megascans资源,帮助开发者快速获取高质量3D资产。通过分步教程和实用技巧,提升游戏或影视场景的制作效率,特别适合需要真实感环境的项目。

weixin_27729671的博客 364

org.apache.log4j.Logger 使用

1、Log4j的概念    Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logge

西洋薇 1万+

迈创cameralink采集卡安装操作说明

迈创cameralink采集卡安装操作说明MIL软件安装MIL软件下载获取MIL软件安装MIL软件安装常见问题 MIL软件安装 MIL软件下载获取 MIL软件安装 解压MIL安装包,点击MilSetup.exe开始安装,如下图所示; 备注:64位系统MIL软件可以同时安装32位和64位客户端,本文档默认安装64位客户端,64位系统安装32位MIL方法后续再展开讲(不建议这样用,很麻烦) 点击Launch Installation开始安装,64位系统,默认只安装64位MIL客户端 根据采集卡驱动,选择M

qq_23107577的博客 9345

YOLOv8【第十三章:模型压缩与极致优化篇·第4节】LAMP 剪枝算法——无需超参的自动化剪枝策略!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 5641

log4j的WriterAppender的应用 http://bill-xing.iteye.com/

log4j 这几天做项目,需要做一个类似于控制台的界面,可以将日志回显到一个文本区域里,几经查找,反复测试写了以下测试代码。 这是log4j.properties的配置内容 log4j.rootCategory= ,WriterAppender log4j.appender.WriterAppender=org.apache.log4j.WriterAppender

zhulianhai0927的专栏 746

深入URP之Shader篇5: SimpleLit Shader分析(1)

本篇开始分析simple lit shader。我们通过分析unlit shader了解了URP shader的结构,以及一些基础功能。而simple lit shader包含了更多的内容。本篇开始,就不会特别仔细的逐行去分析shader文件了,只会针对pass的功能中比较有意思且之前没看到过的内容进行分析。名字为的pass,它的Tags为: 根据URP的文档:说明这是一个前向渲染路径的pass,虽然URP(至少是10.8.1版本)还没有正式支持Deferred Rendering,但URP已经为它打了很多

聚焦游戏和图形引擎开发技术 1901

java 输出日志 到网页_log4j输出日志到前端页面

一、简介有些时候webapp有需求将日志输出到前台页面,便于开发者查看日志,本篇将介绍如何将日志输出到前台显示;二、准备WebSocket技术、log4j、miniui(本项目所用前端,其他也一样);三、参考文档四、过程1、log4j配置log4j.rootLogger=debug,stdout,WA# 选用WriterAppender作为Appender,表示以流的形式输出,这个Appender...

weixin_42097967的博客 2132

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

log4j(五)——如何控制不同目的地的日志输出

转自:http://www.cnblogs.com/godtrue/p/6443195.html 一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; import java.io.*; //by godtrue public class UseLog4j { //...

李思苇 296

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

log4j的用法

  1.声明常量: static Logger log = Logger.getLogger(TestLog.class.getName()); 2.配置文件: log4j支持xml和properties两套配置文件,推荐使用properties。 3.配置方法: 1.日志开关:配置根 Logger,其语法为:  log4j.rootLogger=debug,appender1,appen...

shifengkuaile的专栏 156

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java log4j xml配置_log4j xml配置详解

value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />(1). 输出方式appender一般有5种:org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)org....

weixin_31966185的博客 335

Log4j 的配置

java日志我这里分为两种:web应用和桌面应用。而我这里重点介绍web应用中log4j的使用。 一、配置log4j.properties文件,该文件存放于classpath根目录下。 代码如下: log4j.rootLogger=INFO, stdout, logfile # CONSOLE appender log4j.appender.stdout=org...

z_nieyu MyBlog 137

log4j.properties 详解与配置步骤

一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2、src同级创建并设置log4j.properties ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.Con

sinat_30185177的博客 17万+

log4j配置详解

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appen...

weixin_34240657的博客 210

Log4j使用

Java的开源项目:简单介绍Log4J的使用   作为一个流行的日志记录工具,Log4j是java开源项目中最闪亮的环节之一。究其原因,有以下几点: a)Log4j受大多数web应用服务器的拥护:以我目前所知,tomcat,weblogic,websphere,jboss都支持log4j。 b)快速,功能强大:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库

yaogao000专栏 533

【转载】log4j详解使用

log4j详解 日志论    在应用程序中输出日志有有三个目的:(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作。(2)跟踪代码运行进轨迹,作为日后审计的依据。(3)担当集成开发环境中的调试器,向文件或控制台打印代码的调试信息。  Apache能用日志包(Commons Logging Package)是Apache的一个开放源代码项目,它...

aihuixx024116的博客 183

Log4j: 配置Log4j(详细配置)

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appen...

Given Wu 530

log4j HTMLLayout和WriterAppender学习

<br /> <br />package democreen.log4jexamples2;<br />import java.io.*;<br />import org.apache.log4j.Level;<br />import org.apache.log4j.Logger;<br />import org.apache.log4j.HTMLLayout;<br />import org.apache.log4j.WriterAppender;<br />public class htmlandwr

Democreen 3860

Log4j 总结(六) log4j 之 WriterAppender

public class WriterAppender extends AppenderSkeleton WriterAppender() This default constructor does nothing. WriterAppender(Layout layout, java.io.OutputStream os) Instantiate a Wr...

Alrale 384
上一篇: log4j配置
下一篇: 利用log4j的JDBCAppender把日志写入数据库中
tkxing
博客等级 码龄19年 1粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值