项目里都会用到日志记录..特别是在本地跑的欢畅..一上服务器就嗝屁的时候..日志会帮你大忙..

Log4net算是一种应用的最广泛的日志记录方式了..下面来简略的说下他的用法..

先下载log4net.dll   [下载]  并引用

然后在配置文件里写入一些配置的节值..

下边是我的..

  <log4net>
<appender name="LogsFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/running.txt"/>
<appendToFile value="true"/>
<encoding value="UTF-8"/>
<rollingStyle value="Date"/>
<datePattern value=".yyyyMMdd"/>
<maxSizeRollBackups value="" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender> <root>
<level value="ALL"/>
<appender-ref ref="LogsFileAppender"/>
</root>
</log4net>

因为一般日志都是记录到文件了..所以上边的配置还是最多的..

如果你想加入到数据库..那就要按照下边的写法..

<log4net>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value=""/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="data source=192.168.100.100;initial catalog=DBName;integrated security=false;persist security info=True;User ID=sa;Password=123"/>
<commandText value="INSERT INTO Log (Date, Thread, Level, Logger, Message, Exception, LogApp) VALUES (@Date, @Thread, @Level, @Logger, @Message, @Exception,'Web')"/>
<parameter>
<parameterName value="@Date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@Thread"/>
<dbType value="String"/>
<size value=""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Level"/>
<dbType value="String"/>
<size value=""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Logger"/>
<dbType value="String"/>
<size value=""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Message"/>
<dbType value="String"/>
<size value=""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%Message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Exception"/>
<dbType value="String"/>
<size value=""/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender> <root>
<level value="ALL"/>
<appender-ref ref="AdoNetAppender"/>
</root>
</log4net>

这里边需要先把表建立起来..插入数据库的T-SQL语句也已经在里边配置过了..相信大家可以根据这个语句来建表了..所以具体的建表语句就不写了..

需要说下的是..在上文配置中的最后一个节点..<root>  这里边的节点 level..我配置的是All..就是说所有级别都是写在这里边的..没有区分的特别清楚..大家有兴趣了可以深入研究一下..

然后在程序开始初期..配置这么一句话..来初始化Log4net

 log4net.Config.XmlConfigurator.Configure();

Web程序配置到 Global.asax中..

    // Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
ModelBinders.Binders[typeof(DataTable)] = new DataTableModelBinder(); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}

WinFrom或者WindowService程序中配置到Program.cs中..

    static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
log4net.Config.XmlConfigurator.Configure(); ServiceBase[] ServicesToRun = new ServiceBase[]
{
new Hello()
};
ServiceBase.Run(ServicesToRun);
}
}

在你页面中 要用的时候..需要定义Log对象了..

        log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public Service1()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
log.Info("服务成功启动了!!");
} protected override void OnStop()
{
log.Info("服务被关闭了!!");
}
}

上边是我的用法..大家也可以直接使用

log4net.ILog log = log4net.LogManager.GetLogger("LogsFileAppender");

括号中的值是你在配置文件中配置的那个 appender name..

剩下的就是使用了..Log4net的日志级别分为五类..

从最严重到最轻依次为:

Fatal  毁灭

Error  异常

Warn  警告

Debug  调试

Info  普通信息

可以直接使用上边命名对象 Log  的同名方法来记录日志..

另外再说一点是配置文件中的文件书写方式..

其中layout节点的配置说明:
%m(message):输出的日志消息;
%n(newline):换行;
%d(datetime):输出当前语句运行的时刻;
%r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数;
%t(threadid):当前语句所在的线程ID ;
%p(priority): 日志的当前日志级别;
%c(class):当前日志对象的名称;
%L:输出语句所在的行号;
%F:输出语句所在的文件名;
%-:表示最小长度为10,如果不够,则用空格填充;

Over....

Log4Net使用方法的更多相关文章

  1. C#中log4net使用方法(一)

    Log4net是一个第三方开源组件,它设计的主要目的是组合,生成日志信息,同时将配置保存到各种存储介质或者展现平台中,在实际项目中,Log4net可以保存系统运行情况,可以在系统出现异常时,根据保存的 ...

  2. Log4net入门使用

    简介 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题. 经验表明,日志 ...

  3. log4net入门

    简介 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题. 经验表明,日志 ...

  4. C#中使用Log4net日志输出到本地文件、Textbox或Listview

    网上很多配置log4net的方法,但是排行靠前的 根本就没有说明清除,导致浪费了两个小时来搞清楚如何配置,真是无语,特写此文,给那些刚接触log4net的朋友 1.参考链接:http://blog.s ...

  5. 使用 Log4Net 记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  6. [转]C#使用Log4Net记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  7. [翻译]log4net教程

    原文:log4net Tutorial 一.基础: log4net分为三部分:配置.设置和调用.配置通常是在app.webconfig或web.config文件中:为了增加灵活性,我们也可以使用单独的 ...

  8. log4net.dll配置以及在项目中应用 zt

    1 首先在项目中引用log4net.dll,然后项目中添加一个配置文件log4net.config <?xml version="1.0" encoding="ut ...

  9. log4net日志组件

    转载:http://www.cnblogs.com/knowledgesea/archive/2012/04/26/2471414.html 一.什么是log4net组件 Log4net是基于.net ...

随机推荐

  1. 寻找数组中的第K大的元素,多种解法以及分析

    遇到了一个很简单而有意思的问题,可以看出不同的算法策略对这个问题求解的优化过程.问题:寻找数组中的第K大的元素. 最简单的想法是直接进行排序,算法复杂度是O(N*logN).这么做很明显比较低效率,因 ...

  2. iOS的nil,Null,NSNull的使用

    今天做项目时,在数组里面取值时,发现里面有NSNull的对象,然后用数组里面对应的对象赋值时出现各种问题,总是报错.后面经过研究和查资料,总算解决了这一问题. nil用来给对象赋值(Objective ...

  3. c# 文件转换成base64

    private static void ReadFromFile() { FileStream fsForRead = new FileStream("c9a78c8a-29b0-410d- ...

  4. SQL怎么输出前n个记录? n是中间计算得到的,不支持变量传递

    需求: 表 people_crowed_test 按view_num排序后,输出该表的记录前30%的aid, buyer_id; 需求场景下的诸多限制: 1) 不支持变量赋值,也就是无法把中间结果保存 ...

  5. Android Studio 连接提交Git

    转载:http://www.jianshu.com/p/061d24a6b798 之前一直在使用SVN的时候,就听说Git是个很强大的版本控制工具,最近比较闲,又赶上在痛苦的学习着使用Android ...

  6. [bzoj1854][SCOI2010]游戏

    Description 一个装备有两个属性,一个装备只能被使用一次,一次使用一种属性.攻击boss时需按属性1.属性2.属性3...属性k的顺序使用,问k最大为多少. Input 输入的第一行是一个整 ...

  7. Leetcode 112. Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  8. 【BZOJ-3790】神奇项链 Manacher + 树状数组(奇葩) + DP

    3790: 神奇项链 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 304  Solved: 150[Submit][Status][Discuss] ...

  9. Codeforces Round #389 Div.2 E. Santa Claus and Tangerines

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  10. centos7安装mplayer的方法

    首先是要获取源代码. 首先是主程序的源代码. 打开你的终端,按照我的命令一步一步来: cd Download svn checkout svn://svn.mplayerhq.hu/mplayer/t ...