log4net:将log实时显示在textbox中
来源:互联网 发布:java打印倾斜菱形 编辑:程序博客网 时间:2024/05/22 07:54
1、把log4net.dll添加到项目引用中
2、修改AssemblyInfo.cs,添加如下行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
3、修改配置文件
<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> </configSections> <log4net> <appender name="PatternFileAppender" type="SampleAppendersApp.Appender.PatternFileAppender, SampleAppendersApp"> <file value="%date{yyyy-MM-dd}\%property{session}\output.log" /> <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> </appender> <root> <level value="ALL" /> <appender-ref ref="PatternFileAppender" /> </root> </log4net></configuration>
4、Form1的代码如下:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using log4net.Core;namespace WinFormDemo{ public partial class Form1 : Form { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); private bool logWatching = true; private log4net.Appender.MemoryAppender logger; private Thread logWatcher; public Form1() { InitializeComponent(); this.Closing += new CancelEventHandler(Form1_Closing); logger = new log4net.Appender.MemoryAppender(); log4net.Config.BasicConfigurator.Configure(logger); logWatcher = new Thread(new ThreadStart(LogWatcher)); logWatcher.Start(); } void Form1_Closing(object sender, CancelEventArgs e) { logWatching = false; logWatcher.Join(); } delegate void delOneStr(string log); void AppendLog(string _log) { if (txtLog.InvokeRequired) { delOneStr dd = new delOneStr(AppendLog); txtLog.Invoke(dd, new object[] { _log}); } else { StringBuilder builder; if (txtLog.Lines.Length > 99) { builder = new StringBuilder(txtLog.Text); builder.Remove(0, txtLog.Text.IndexOf('\r', 3000) + 2); builder.Append(_log); txtLog.Clear(); txtLog.AppendText(builder.ToString()); } else { txtLog.AppendText(_log); } } } private void LogWatcher() { while (logWatching) { LoggingEvent[] events = logger.GetEvents(); if (events != null && events.Length > 0) { logger.Clear(); foreach (LoggingEvent ev in events) { string line = ev.LoggerName + ": " + ev.RenderedMessage + "\r\n"; AppendLog(line); } } Thread.Sleep(500); } } private void timer1_Tick(object sender, EventArgs e) { Random r = new Random(); int x = r.Next(1, 4); switch (x) { case 1: log.Info("通知:通知通知通知"); break; case 2: log.Warn("警告:警告警告警告警告警告警告"); break; case 3: log.Error("错误:错误错误错误错误错误错误错误错误错误"); break; case 4: log.Fatal("严重:严重严重严重严重严重严重严重严重严重严重严重严重严重严重严重严重严重"); break; } } }}
0 0
- log4net将log实时显示在textbox中(WinForm)
- log4net:将log实时显示在textbox中
- 将Log4Net的消息实时显示在Windows Form的TextBox控件中
- C#在textbox中显示实时时间
- c# 在textBox中实时显示系统时间
- log4net - Write log to WinForm TextBox
- c#中如何将byte数组转换成string从而在textbox中显示出来?
- 如何将数据库中的字段数据绑定显示在Label或TextBox控件中
- textbox实时显示金额样式
- 解决textBox实时显示问题
- 在asp.net下将log4net配置成可log到ms sql
- 在asp.net下将log4net配置成可log到ms sql
- 在asp.net下将log4net配置成可log到ms sql
- 在asp.net下将log4net配置成可log到ms sql
- 在asp.net下将log4net配置成可log到ms sql
- Qt中实时将Qtableview中的内容显示在相应的控件上
- 如何在列表框中实时显示
- 在iPad中显示实时交通地图
- android 自适应 多屏幕支持 .
- 【视频处理工程】2、DirectShow的基本单元:Filter
- gethostbyname()
- Android五大布局
- #Andriod# -----分享按钮的实现
- log4net:将log实时显示在textbox中
- linux用命令制作再生龙u盘启动
- 内存管理单元-MMU
- c语言迷宫最短路径
- eclipse快捷键 10个最有用的快捷键
- C++算法库 (3)划分操作
- 解读《TCP/IP详解》(卷1):05章:RARP(逆地址解析协议)
- Could not launch xxx failed to get the task for process xxx
- MongoDB设置访问权限、设置用户