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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 18年工作好难找怎么办 我没工作了怎么办2018 婚姻质量差不幸福该怎么办 吸毒犯戒毒所不收怎么办 信用卡到期人进拘留所怎么办? 人在拘留所信用卡逾期怎么办 探视权不让接走怎么办 医保过了缴费期怎么办 充电宝充手机慢怎么办 执行局执行不到钱怎么办 小孩挖耳朵疼了怎么办 挖耳朵挖破了怎么办 挖耳朵皮挖破了耳鸣怎么办 北京自考证丢啦怎么办 不服检察院的答复函该怎么办 检察院控申答复函不复怎么办 在看守所里疯了怎么办 第一次吸毒拘留五天第二次会怎么办 被派出所拘留15天怎么办 老公从拘留所出来聪明老婆怎么办 中信信用卡忘记还款了怎么办 监狱的犯人病了怎么办 判缓期间在行政拘留怎么办 法院拘留15天工作怎么办 高血压签定了无期限合同怎么办 法院司法拘留找不到人怎么办 c1骑摩托车要拘留怎么办 欠钱的找不到人怎么办 治安拘留人跑了怎么办 行政拘留拘留所不收应该怎么办 在看守所被打了怎么办 取保候审超过12个月怎么办 拘留20天还没有判刑怎么办 被打了没有证据怎么办 拘留37天后没有放人怎么办 强制执行执行的财产不够怎么办 收到公安局拘留通知家属应该怎么办 对方不出谅解书怎么办 寻衅滋事没抓的 怎么办 公务员政审父母拘留过怎么办 我参与了网赌怎么办