博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Log4net输出信息到RichTextBox
阅读量:4077 次
发布时间:2019-05-25

本文共 1741 字,大约阅读时间需要 5 分钟。

 

昨晚上传查看了下log4net,因为之前是做java对这个组件的使用比较熟悉,还没扩展过。但是一个小项目需要,实现了对log4net的改写,让log4net输出日志消息到自己想输出的地方。

先说下log4net的使用,再说对log4net重写,实现让日志消息打印到我们想要的地方。
1:log4net的使用:
A:下载incubating-log4net-1.2.10.zip,解压,找到bin\net\2.0\release\log4net.dll(对于.net framework2.0的平台),让你的winform工程引入这个dll。
B:1)在你的winform工程主目录下建立文件App.config,内容如下:

2)在你的工程下的Properties下的AssemblyInfo.cs最下面一行添加代码:

// 添加log4net日志支持

[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

C:我在form的onLoad事件中添加了如下测试代码:

// test for log4net
ILog log = LogManager.GetLogger(this.GetType());
log.Info("test");
D:运行该程序,可以在.exe程序的同级目录下找到文件log-file.txt,内容为text。
至此,log4net的简单使用已经ok。

2:扩展log4net,让日志输出到我们想要的地方,其实log4net自带了很多输出到不同地方的Appender,但是我这里的需求,系统还是默认没有满足我,我想让日志显示在RichTextBox中,下面看我的改写:

A:建立自己的Log类,继承log4net的AppenderSkeleton类,只需要重载其Append方法即可,下面看代码:

using System;using System.IO;using System.Collections.Generic;using System.Text;using log4net.Appender;using log4net.Filter;using log4net.Util;using log4net.Layout;using log4net.Core;namespace PostApplication.core.util{    class Log : AppenderSkeleton    {               override protected void Append(LoggingEvent loggingEvent)        {            StringWriter writer = new StringWriter();            this.Layout.Format(writer, loggingEvent);     // 已经得到了按照自己设置的格式的日志消息内容了,就是writer.toString()。然后你想把这句话显示在哪都可以了。。我是测试就直接控制台了。            Console.Write(writer.ToString());        }    }}

 

B:修改App.config的<appender name="LogFileAppender" type="log4net.Appender.FileAppender" > 为 <appender name="LogFileAppender" type="PostApplication.core.util.Log" >

即可。。

经过昨晚的查看资料和今天的测试发现,没有那么复杂。。

 

转载地址:http://etini.baihongyu.com/

你可能感兴趣的文章
原来容器比如vector的本质是一个类模板
查看>>
opencv使用了很多标准模板库(STL)
查看>>
嵌入式软件工程师真的串口的开发是必备的技能
查看>>
ROS串口编程学习笔记
查看>>
我的无人机运输箱
查看>>
树莓派进行镜像备份(我亲自操作的)
查看>>
树莓派系统镜像备份,多种方法归纳总结
查看>>
快速搭建一个APMT265树莓派无人机
查看>>
你后期能不能做一下激光雷达融合双目的位置信息进行定位
查看>>
发现一批北航的
查看>>
github gitlab 用IDE很方便
查看>>
DMA
查看>>
有限状态机编程是裸机编程效率最高的编程模式
查看>>
IIC
查看>>
同样是MPU6050 同样是IIC,我现在看和五年前看不是一个层面了
查看>>
我发觉不管是单片机,还是串口通信,还是传感器,最后根本都是配置寄存器。
查看>>
一个字节八位,左边是高位,右边是低位。
查看>>
SPI
查看>>
MPU6050里面还有一个温度传感器
查看>>
从UART到IIC到SPI我感觉是越来越好的
查看>>