1. log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

2. Log4net的结构如下:

log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及Layout(布局).

3. 配置节点是由logger和appender组成的. logger说明要使用哪些appender. appender说明日志怎样存储,如写入系统日志,文本,数据库,邮件等

appender节里有两个重要的子节点. filter负责过滤你想要得到的日志级别或包含特殊的字符串 layout负责日志输出的样式.

4.使用步驟:

4.1 加入參考,即加載log4net.dll

4.2 配置Config文件:

<configuration>

<configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
  </configSections>

<log4net>
    <!--定义输出到文件中-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--定义文件存放位置-->
      <file value="log\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
      <staticLogFileName value="false" />
      <param name="MaxSizeRollBackups" value="100" />
      <layout type="log4net.Layout.PatternLayout">
              <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline %n記錄時間:%date %n對應的窗體:%logger property: [%property{NDC}] - %n記錄信息:%message%newline %n" />
      </layout>
    </appender>

<!--每条日志末尾的文字说明-->
    <root>
      <level value="ERROR" />
      <!--文件形式记录日志-->
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

</configuration>

4.3 實體類

[assembly: log4net.Config.XmlConfigurator(Watch = true)]   //如何沒有這句,將看不到記錄日誌的文件夾

namespace HanKeDemo

{

class LogHelper

{

/// <summary>

/// 输出日志到Log4Net

/// </summary>

/// <param name="t"></param>

/// <param name="ex"></param>

#region static void WriteLog(Type t, Exception ex)

public static void WriteLog(Type t, Exception ex)

{

log4net.ILog log = log4net.LogManager.GetLogger(t);

log.Error("Error", ex);

}

#endregion

/// <summary>

/// 输出日志到Log4Net

/// </summary>

/// <param name="t"></param>

/// <param name="msg"></param>

#region static void WriteLog(Type t, string msg)

public static void WriteLog(Type t, string msg)

{

log4net.ILog log = log4net.LogManager.GetLogger(t);

log.Error(msg);

}

#endregion

/// <summary>

/// 操作系统的登录用户名

/// </summary>

/// <returns></returns>

public static string GetUserName()

{

try    {

return System.Environment.UserName.ToUpper();

}

catch

{

return "unkonwn";

}

}

}

}

4.4 調用實例

LogHelper.WriteLog(typeof(MainForm), strMsg);

log4net--帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具的更多相关文章

  1. Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。

    Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...

  2. 使用log4j使某些java类的日志信息输出到指定日志文件中

    Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI 组件.甚至是套接口服务器.NT 的事件记录器.UNIX Syslog ...

  3. 使用log4j将不同级别的日志信息输出到不同的文件中

    使用log4j.xml xml格式的配置文件可以使用filter. 例如想只把log4j的debug信息输出到debug.log.error信息输出到error.log,info信息输出到info.l ...

  4. java程序显示log日志信息的方法

    首先需要引入maven依赖 <dependency> <groupId>commons-logging</groupId> <artifactId>co ...

  5. c#简单的调试信息、日志信息输出

    public static void ErrorLog(string mssg) { string FilePath = "D:/logs/ErrorLog.txt"; try { ...

  6. 程序员的算法课(16)-B+树在数据库索引中的作用

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  7. 程序员必备,C#各类项目、开源项目插件资料收藏

    一.AOP框架     Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面 ...

  8. 【新阁教育】基于Log4Net实现日志信息双向存储(含源码)

    1.引言 在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪.初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些 ...

  9. Log4net入门(回滚日志文件篇)

    在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会 ...

随机推荐

  1. 基于Theano的DNN框架Blocks使用简要总结

    Blocks官方代码地址:https://github.com/mila-udem/blocks Blocks是加拿大Montreal大学Bengio实验室牵头开发的基于Python的神经网络模型框架 ...

  2. 程序员必须知道的几个国外IT网站

    1.TheServerSide 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以Java和Java周边信息为主,不过最近它也有向客户端和微软产品扩展的趋势.这个网站最初是以免 ...

  3. A - 畅通工程

    A - 畅通工程 Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  4. HDU 4651 Partition(整数拆分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651 题意:给出n.求其整数拆分的方案数. i64 f[N]; void init(){    f[0 ...

  5. 消息队列-推/拉模式学习 & ActiveMQ及JMS学习

    一种分类是推和拉 . 还有一种分类是 Queue 和 Pub/Sub . 先看的这一篇:http://blog.csdn.net/heyutao007/article/details/50131089 ...

  6. 【Todo】InnoDB、MyISAM、数据库引擎

    关于InnoDB和MyISAM引擎的对比,下面这篇讲的挺好 http://www.cnblogs.com/vicenteforever/articles/1613119.html 这一篇关于InnoD ...

  7. Bootstrap_CSS全局样式

    一.HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型.在你项目中的每个页面都要参照下面的格式进行设置. <!DOCTY ...

  8. [ionic开源项目教程] - 第12讲 医疗模块的实现以及Service层loadMore和doRefresh的提取封装

    关注微信订阅号:TongeBlog,可查看[ionic开源项目]全套教程. 这一讲主要实现tab2[医疗]模块,[医疗]模块跟tab1[健康]模块类似. [ionic开源项目教程] - 第12讲 医疗 ...

  9. Qt之Tab键切换焦点顺序

    简介 Qt的窗口部件按用户的习惯来处理键盘焦点.也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件. 焦点获取方式比较多,例如:鼠标点击.Tab键切换.快捷键.鼠标滚轮等. 习 ...

  10. 深入理解OpenERP的工作流(Workflow)

    一.工作流定义: <?xml version="1.0"?>  <terp><data>    <record model="w ...