加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

winform下log4net使用的Demo

(2012-04-23 22:18:05)
标签:

it

分类: C#学习积累

log4net是一个用来记录日志的,功能很多,可以把日志记录到文件,控制台,数据库,windows事件日志中。使用起来非常方面,只需要引用log4net.dll和配置相关文件就可以了。今天写了个测试的demo,按照网上教的方法,感觉一样,但是日志就是不出来~~~后来发现log4net的配置必须在app.config文件中配置,别的名字的还不行,至今不知道原因。姑且发个winform下使用log4net成功的例子,之后有时间和需要再去学习。

 

1、在引用里面添加log4net.dll;

2、添加一个配置文件:app.config,其内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--在配置选项中加入log4net的引用-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender  name="LogFile" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" value="../../logs/log.txt" /> <!--定义用文件来保存日志,生成的文件log.txt放在logs目录中,logs文件夹和应用程序生成的bin文件夹在同一目录下。-->
      <param name="AppendToFile" value="false" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyy.MM.dd" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <!--定义输出风格-->
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
        <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
      </layout>
    </appender>

    <appender>

      <!--一个配置文件可以有很多appender,一个appender节就相当于一个日志输出介质或方法。-->

    </appender>
    <logger name="logApp">
      <!--定义logger对象的名字为logApp,以方便在代码中使用logger-->
        <!--配置项可以不配置-->
        <level value="ALL" />
        <!--定义输出的信息等级为所有其中包括Fatal.Error.Warn.Info.Debug-->
      </logger>
      <root>
        <!--定义日志输出的方式和等级-->
        <level value="INFO" />
        <appender-ref ref="LogFile" /><!--选择了文件输出,注意粗体部分对应的名称-->
      </root>
    </log4net>
</configuration>

 

3、在程序集AssemblyInfo.cs中添加:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]   //Add by lifen 2012-4-23 12:57:50

4、在代码中调用:

       private void btnTest_Click(object sender, EventArgs e)
        {

            Random random = new Random();
            for (int i = 0; i < 1; i++)
            {
                //创建日志记录组件实例 
                //ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

                //ILog log = log4net.LogManager.GetLogger("logApp");
                ILog log = log4net.LogManager.GetLogger(typeof(Form1));//Form1是当前类的名字
                //MessageBox.Show(log.ToString()+"log.Logger.Name = "+log.Logger.Name);
                //记录错误日志 
                log.Error("error", new Exception("在这里发生了一个异常,Error Number:"+random.Next())); 
                //记录严重错误 
                log.Fatal("fatal", new Exception("在发生了一个致命错误,Exception Id:"+random.Next())); 
                //记录一般信息 
                log.Info("提示:系统正在运行"); 
                //记录调试信息 
                log.Debug("调试信息:debug"); 
                //记录警告信息 
                log.Warn("警告:warn"); 
           
        }

 

代码下载地址:我的sina资料共享中有,不知道是不是这个地址:http://iask.sina.com.cn/u/1680753090/ish

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有