log4net - Write log to WinForm TextBox
来源:互联网 发布:淘宝模特兼职价格 编辑:程序博客网 时间:2024/06/07 13:57
转自http://www.cnblogs.com/mrfangzheng/archive/2012/11/29/2795133.html,经测试可用。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using log4net.Appender;using System.Windows.Forms;using log4net.Core;using log4net.Layout;namespace UI{ /// <summary> /// Usage: /// log4net.Config.BasicConfigurator.Configure(); /// var logPattern = "%date [%thread] %-5level %logger !%M - %message%newline"; /// var logAppender = new TextBoxBaseAppender() /// { /// TextBox = this.textBox2, /// Layout = new PatternLayout(logPattern) /// }; /// /// ((log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetLoggerRepository()).Root.AddAppender(logAppender); /// </summary> public class TextBoxBaseAppender : AppenderSkeleton { public TextBoxBase TextBox { get; set; } public TextBoxBaseAppender() { } protected override void Append(LoggingEvent loggingEvent) { if (this.TextBox == null) { return; } if(!this.TextBox.IsHandleCreated) { return; } if(this.TextBox.IsDisposed) { return; } var patternLayout = this.Layout as PatternLayout; var str = string.Empty; if (patternLayout != null) { str = patternLayout.Format(loggingEvent); if (loggingEvent.ExceptionObject != null) { str += loggingEvent.ExceptionObject.ToString() + Environment.NewLine; } } else { str = loggingEvent.LoggerName + "-" + loggingEvent.RenderedMessage + Environment.NewLine; } if (!this.TextBox.InvokeRequired) { this.TextBox.AppendText(str); } else { this.TextBox.BeginInvoke((MethodInvoker)delegate { if (!this.TextBox.IsHandleCreated) { return; } if (this.TextBox.IsDisposed) { return; } this.TextBox.AppendText(str); }); } } }}
测试代码:
var logPattern = "%date [%thread] %-5level %logger !%M - %message%newline"; var logAppender = new TextBoxBaseAppender() { TextBox = this.textBox1, Layout = new PatternLayout(logPattern) }; log4net.Config.BasicConfigurator.Configure(logAppender); ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); log.Error("button2 clicked. - testbox msg.");
0 0
- log4net - Write log to WinForm TextBox
- log4net将log实时显示在textbox中(WinForm)
- log4net:将log实时显示在textbox中
- How to variable path of log output via log4net
- How to output log by log4net during MSTest UTs
- Write to the event log in a .net project
- winform中配置Log4Net
- winform项目使用log4net
- 使用Log4net记Log
- log4net输出log不起作用
- Winform 水印TextBox
- winform TextBox UpperCase
- winform textBox输入提示
- impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT
- Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT…
- Last_Error: Error executing row event: 'Cannot execute statement: impossible to write to binary log
- Cause: java.sql.SQLException: Cannot execute statement: impossible to write to binary log
- ERROR 1665 (HY000): Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT
- uvalive 4394 string painter (序列dp)
- 【机房收费系统】MDI菜单显示子窗体
- C语言文件处理-对图片取模数据的转换
- 【POJ 2049】Finding Nemo
- 关于cocos2d-x 触屏事件不能接收的问题
- log4net - Write log to WinForm TextBox
- Machine Learning Basis
- C++打印位数为n的所有数
- ORACLE EBS架构与管理基础(12.1.3)学习总结
- libevent源码之TAILQ详解
- C++ 静态成员函数调用非静态成员函数方法
- 列表(1)
- Fabric不能启动后台进程问题
- [LeetCode] Invert Binary Tree