Log4net輸出資訊到RichTextBox

來源:互聯網
上載者:User
 

昨晚上傳查看了下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,內容如下:

<?xml version="1.0" encoding="utf-8" ?><configuration>  <configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />  </configSections>  <log4net>    <root>      <level value="ALL" />      <appender-ref ref="LogFileAppender" />    </root>    <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="%d %-5p [%c:%L]:%m%n" />      </layout>    </appender>  </log4net></configuration>



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" >
即可。。

經過昨晚的查看資料和今天的測試發現,沒有那麼複雜。。


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.