效果:

描述:

利用log4net组件进行错误日志的记录,log4net记录错误的方式我所了解的有4种,No.1 文本形式记录日志,No.2存储到数据库形式记录日志,No.3控制台控制显示日志,No.4Windows事件日志。本文所采用的是第一种形式------文本形式记录日志。

首先,引用log4net.dll文件,然后创建一个config文件,进行配置日志的相关信息,比如:配置路径,以及错误的显示形式等。然后创建一个Global.asax应用程序文件,用于第一次访问时执行配置文件。然后创建一个类,进行错误日志的整理,然后调用这个类进行写入日志。

代码:

配置文件(log.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="RollingLogFileAppender" />
</root>
<!--输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--保存路径-->
<file value="log\\Log-" />
<!--是否续写-->
<appendToFile value="true" />
<!--按照文件的大小进行变换日志文件-->
<rollingStyle value="Date" />
<!--保留的log文件数量 超过此数量后 自动删除之前的 好像只有在 按Size分割时有效-->
<param name="MaxSizeRollBackups" value="100"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
<encoding value="utf-8" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<!--
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
-->
<layout type="log4net.Layout.PatternLayout">
<param name="conversionPattern" value="时间:%d%n线程:[%t]%n类型:%-5p%n标题:%c%n内容:%m%n——————————%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
</log4net>
</configuration>

应用程序(Global.asax)

protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(Server.MapPath("~") + @"\log.config"));
}

处理日志(logHelper.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace log4net_Write
{
public class logHelper
{
/// <summary>
/// 生成日志信息——Fatal(致命错误)
/// </summary>
/// <param name="message">日志内容</param>
public static void Fatal(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("Fatal");
if (log.IsFatalEnabled)
{
log.Fatal(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Fatal(致命错误)
/// </summary>
/// <param name="name">名称</param>
/// <param name="message">日志内容</param>
public static void Fatal(string name, string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(name);
if (log.IsFatalEnabled)
{
log.Fatal(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Error(一般错误)
/// </summary>
/// <param name="message">日志内容</param>
public static void Error(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("Error");
if (log.IsErrorEnabled)
{
log.Error(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Error(一般错误)
/// </summary>
/// <param name="name">名称</param>
/// <param name="message">日志内容</param>
public static void Error(string name, string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(name);
if (log.IsErrorEnabled)
{
log.Error(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Warn(警告)
/// </summary>
/// <param name="message">日志内容</param>
public static void Warn(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("Warn");
if (log.IsWarnEnabled)
{
log.Warn(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Warn(警告)
/// </summary>
/// <param name="name">名称</param>
/// <param name="message">日志内容</param>
public static void Warn(string name, string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(name);
if (log.IsWarnEnabled)
{
log.Warn(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Info(一般信息)
/// </summary>
/// <param name="message">日志内容</param>
public static void Info(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("Info");
if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Info(一般信息)
/// </summary>
/// <param name="name">名称</param>
/// <param name="message">日志内容</param>
public static void Info(string name, string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(name);
if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Debug(调试信息)
/// </summary>
/// <param name="message">日志内容</param>
public static void Debug(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("Debug");
if (log.IsDebugEnabled)
{
log.Debug(message);
}
log = null;
} /// <summary>
/// 生成日志信息——Debug(调试信息)
/// </summary>
/// <param name="name">名称</param>
/// <param name="message">日志内容</param>
public static void Debug(string name, string message)
{
log4net.ILog log = log4net.LogManager.GetLogger(name);
if (log.IsDebugEnabled)
{
log.Debug(message);
}
log = null;
}
}
}

调用

   protected void btn_Click(object sender, EventArgs e)
{
try
{
int intStr = Convert.ToInt32(tb.Text);
tb2.Text = "转换成功:" + intStr.ToString();
}
catch (Exception ex)
{
//logHelper.Error(ex.ToString());
//logHelper.Debug(ex.ToString());
//logHelper.Fatal(ex.ToString());
//logHelper.Info(ex.ToString());
logHelper.Warn("warn名称", ex.ToString());
}
}

Demo下载:

http://files.cnblogs.com/files/xinchun/GetLog2.zip

点滴积累【C#】---使用log4net组件记录错误日志(以文本形式记录)的更多相关文章

  1. ASP.NET MVC中Log4Net记录错误日志的使用

    第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSection ...

  2. WebForm应用log4net记录错误日志——使用线程列队写入

    我的项目结构如下图: 日志帮助类库需要log4net包:工具—NuGet包管理器—管理解决方案NuGet程序包 线程日志帮助类 FlashLogger.cs 代码 using System; usin ...

  3. ASP.NET记录错误日志的方式

    程序记录错误日志是一种看起来对一般用户没什么作用,但对程序开发者用处很大的东西,它能查出错误或异常的程序马迹.那么,常用的记录错误日志的方式有哪些呢? 大多数情况下使用的是 1.直接记录为txt/xm ...

  4. AspNetCore 使用log4net+IExceptionFilter 记录错误日志

    错误日志的好处我就不说了,大家都心里有数,那今天浩子就给大家说一说基本的错误日志吧这次通过log4net记录日志. 原来写过一个关于Nlog的日志框架,传送门为:https://www.cnblogs ...

  5. asp.net mvc中加入log4net记录错误日志

    直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...

  6. ASP.NET - 记录错误日志

    不需要像log4net/Nlog/Common Logging配置,简单好用. 不用增加声明logger对象,可记录当前执行状况. 可以定义 维护功能模板的开发人员,以便用功能模块对于开发人员. 出处 ...

  7. ASP.NET 配置log4net启用写错误日志功能

    http://www.cnblogs.com/yeminglong/archive/2013/05/21/3091192.html 首先我们到apche的官网下载log4net的项目编译得到log4n ...

  8. C# 记录错误日志

    程序的错误日志如何记录下来? 可以在遇到异常时,Catch异常,然后把异常的信息输出到txt文件中即可 /// <summary> /// 错误日志 /// </summary> ...

  9. (转)处理SQL中的异常并记录错误日志

    原文地址 创建错误日志表: ),ErrState ),ErrLine )) --创建错误日志记录存储过程: CREATE PROCEDURE ErrorLog AS SELECT ERROR_NUMB ...

随机推荐

  1. Ubuntu 16.04通过NetworkManager(GUI)配置网桥

    说明:配置好网桥之后一定要重启,不然不生效.这个是Desktop版GUI设置的问题.Server版不会. 配置: 参考: http://www.jb51.net/LINUXjishu/333778.h ...

  2. HDU 1864 Brave Game 【组合游戏,SG函数】

    简单取石子游戏,SG函数的简单应用. 有时间将Nim和.SG函数总结一下……暂且搁置. #include <cstdio> #include <cstring> #define ...

  3. subline text 常用插件

    C语言 Alignment   c Improved   cool format doc Blocker   cTags   AllAutoComplete       wakatime 精确统计你再 ...

  4. 诡异的 "密码取回" 邮件问题

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. Mac 快捷键整理(不定期更新)

    刚用Mac, 感到有点困难,记录几个快捷键: 1) 在全屏间切换: ctrl + command + F 2)向后删: Fn + delete

  6. Android-经常涉及到的权限

    Android中配置权限的方法: 在AndroidMainFest.xml中加上以下代码 Android中一些经常涉及到的权限: 添加WiFi以及访问网络的权限: <uses-permissio ...

  7. ShopNC B2B2C多用户商城2014商业版,带微商城

    据说价值7000RMB,咱们好站长资源网友分享出来的,非常感谢分享这么好的源码.此套ShopNC B2B2C多用户商城源码是2014版的,带有微商城,源码我们安装测试基本没发现啥问题,这两天将会完全免 ...

  8. Expression-Based Access Control

    Expression-Based Access Control Spring Security 3.0 introduced the ability to use Spring EL expressi ...

  9. centos下安装pyspider

    环境: * CentOS release 6.4 (Final) * Python 2.6.6 pip install pyspider   ,发现lxml没有安装好 直接sudo yum insta ...

  10. 算法笔记_076:蓝桥杯练习 结点选择(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值.如果一个点被选择了,那么在树上和它相邻的点都不能被选择.求选出的点的权值和最大是多 ...