log4j的WriterAppender的应用

log4j WriterAppender 截取指定日志+ spark程序 工具 :ubuntu12.04 + spark1.0.0 目标:spark运行过程中会产生日志。希望让客户实时观察到任务执行的过程,就需要截取日志信息展现给客户。 eg:Starting task 17.0:0 as TID 28 on executor localhost: localhost (PROCESS_LOCAL) Finished TID 28 in 28 ms on loca 阅读详情

这几天做项目,需要做一个类似于控制台的界面,可以将日志回显到一个文本区域里,几经查找,反复测试写了以下测试代码。
这是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 立即下载

相关推荐

restbed编译笔记

Restbed 可以构建出基于asio库的restfulAPI服务,Restbed 4.7版本使用了1.12.0版本的asio(其他版本编译不通过),可直接访问github下载:https://github.com/chriskohlhoff/asio/tree/asio-1-12-0。另外Restbed还依赖openssl库(可直接下载exe的安装包,安装后取出lib库及头文件放到到restbed\dependency\openssl中即可,https://slproweb.com/download/W.

mahong100的博客 2106

log4j中appender的简介说明

log4j中appender的简介说明

qq_25073223的博客 2019

别再怕无霍尔BLDC了!手把手教你用反电动势过零检测搞定电机换向(附STM32代码片段)

本文详细介绍了无霍尔传感器BLDC电机的驱动方法,重点讲解反电动势过零检测技术及其在STM32上的实现。通过硬件电路设计、信号调理和软件算法优化,手把手教你完成电机换向控制,并提供实用的调试技巧和代码片段,帮助开发者快速掌握无霍尔BLDC驱动技术。

weixin_42522575的博客 492

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

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

weixin_30321449的博客 749

Embarcadero Dev-C++ 6.3安装教程【保姆级】

Embarcadero Dev-C++ 6.3安装教程,保姆级教程~

Thebest_jack的博客 1万+

3D Slicer的学习(二) 图像的分割

先对不同层级标注,然后点击Fill between slices -> Initialize -> Apply拖动层级颜色区域就会变成连续自适应的动态变化区域。如图,点击Level tracing,在图像上放置鼠标,会显示可能想要选中区域的轮廓,点击鼠标右键会将其显示为蓝色。然后点击Grow from seeds -> Initialize -> Apply,显示3D之后会自动扩展到其他位置的相同部位,从而展示整个部位。如图为copy之后,将黄色区域的颜色复制到原本的绿色区域。

tuweibazong的博客 6080

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

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

andyzhaojianhui的专栏 2867

【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘

虚拟化平台安装好之后,一般情况下,只有一个硬盘在工作,其他的外接硬盘(我的只有一个ssd硬盘,其他的均是usb外接,SATA接口的硬盘是否这样我暂时不清楚哈)没有在工作,但是一个硬盘明显不够我们使用的,所以我们需要去挂载外接的硬盘来扩容。...

Rubik Blog 4834

org.apache.log4j.Logger 使用

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

西洋薇 1万+

2026 具身智能 VLA/WAM 全栈学习与训练路线:从动作建模、SFT、RL 到世界模型的 RTX PRO 6000 96GB 单卡实战指南

我会把这张表做成“”而不是只列论文名:先核对每个模型截至的公开代码、训练目标和数据接口,再单独给你一套。对于没有公开、只有推理代码或训练细节不完整的模型,我会明确标出来,避免把“论文里提到”误写成“可复现”。目前有一个重要更新:。截至今天 NVIDIA 官方开源主线已经是换成 Cosmos-Reason2-2B/Qwen3-VL 架构,动作端仍是连续路线,而且官方明确给出单卡微调时默认只训练,峰值显存约。所以你的 96GB 单卡对 GR00T SFT 非常宽裕。可以。下面我按,把它整理成一张真正面向“

u013250861的博客 442

【Hyper-V】虚拟机网络配置全解析:从端口映射到固定IP实战

本文全面解析Hyper-V虚拟机网络配置,从理解虚拟交换机三种模式(外部、内部、专用)的底层逻辑入手,指导用户创建稳定的内部/NAT网络,并详细演示如何在Linux与Windows虚拟机中配置固定IP。文章进一步深入讲解端口映射原理与netsh命令实战,以及双网卡配置和PowerShell自动化脚本等高级技巧,帮助用户彻底解决虚拟机网络“失联”问题,实现灵活可控的网络环境。

weixin_29290947的博客 269

【JAVA】log4j.xml详解

Appender Appender:日志输出器,配置日志的输出级别、输出位置等,包括以下几类: ConsoleAppender: 日志输出到控制台; FileAppender:输出到文件; RollingFileAppender:输出到文件,文件达到一定阈值时,自动备份日志文件; DailyRollingFileAppender:可定期备份日志文件,默认一天一个文件,也可设置为每分钟一个...

climy的技术小站 1008

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 408

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

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

zhulianhai0927的专栏 746

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

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

weixin_42097967的博客 2132

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

李思苇 296

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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 总结(六) 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、付费专栏及课程。

余额充值