using log4net;
using log4net.Config;
using System;
using System.IO; namespace Three.Logging
{
/// <summary>
/// 基于log4net的日志工具,需要拷贝Log4Net.config到要使用日志的程序目录,具体配置查阅log4net帮助,此处不赘述
/// </summary>
public static class Logger
{
private static readonly ILog logdebug = LogManager.GetLogger("logdebug");
private static readonly ILog loginfo = LogManager.GetLogger("loginfo");
private static readonly ILog logerror = LogManager.GetLogger("logerror"); static Logger()
{
var path = AppDomain.CurrentDomain.BaseDirectory + @"\Log4net.config";
XmlConfigurator.ConfigureAndWatch(new FileInfo(path));
} /// <summary>
/// 写DEBUG日志
/// </summary>
/// <param name="debug">日志内容</param>
public static void Debug(string debug)
{
if (logdebug.IsDebugEnabled)
{
logdebug.Debug(debug);
}
} /// <summary>
/// 写DEBUG日志
/// </summary>
/// <param name="debug">日志内容</param>
/// <param name="ex">将异常信息也写入日志</param>
public static void Debug(string debug, Exception ex)
{
if (logdebug.IsDebugEnabled)
{
if (ex == null)
{
logdebug.Debug(debug);
}
else
{
logdebug.Debug(debug, ex);
}
}
} /// <summary>
/// 写Info信息到日志
/// </summary>
/// <param name="info">日志内容</param>
public static void Info(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
} /// <summary>
/// 写error信息到日志
/// </summary>
/// <param name="error">日志内容</param>
public static void Error(string error)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(error);
}
} /// <summary>
/// 写error信息到日志
/// </summary>
/// <param name="error">日志内容</param>
/// <param name="ex">将异常信息也写入日志</param>
public static void Error(string error, Exception ex)
{
if (logerror.IsErrorEnabled)
{
if (ex == null)
{
logerror.Error(error);
}
else
{
logerror.Error(error, ex);
}
}
} private static string FormatErrorMsg(Exception ex)
{
var errorMsg = string.Format("【异常类型】:{0} <br>【异常信息】:{1} <br>【堆栈调用】:{2}",
new object[] {ex.GetType().Name, ex.Message, ex.StackTrace});
errorMsg = errorMsg.Replace("\r\n", "<br>");
errorMsg = errorMsg.Replace("位置", "<strong style='color:red;'>位置</strong><br>");
return errorMsg;
}
}
}

  

C# Log4Net使用示例的更多相关文章

  1. log4net简单配置内容

    首先将log4net.dll下载来,添加到项目引用中: 在assembly文件最后面加(其实没关系的): [assembly: log4net.Config.XmlConfigurator(Confi ...

  2. 【记录】.net 通用log4net日志配置

    asp.net mvc 1.引入log4netNuGet包. 2.修改Global.asax下的Application_Start方法.加入log4net.Config.XmlConfigurator ...

  3. Log4net(二)-——关联配置文件的方式总结

    关联配置文件的方式总结 以控制台应用程序为例,在.net mvc项目中默认的配置位置为Web.config,其他的配置都一样 1.配置在AppConfig中 在控制台应用程序中,如果我们把Log4ne ...

  4. Log4net系列二:Log4net邮件日志以及授权码

    Log4net邮件发送 上篇文章我们主要介绍Log4net生成文本格式,本篇文章主要配置邮箱发送.关于项目的引用,搭建我们就不在描述,如果不太清楚,请看上篇文章, 老规矩,我们现在配置文件中添加一个a ...

  5. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  6. 实战项目:通过当当API将订单抓取到SAP(二)

    上一篇博客,我们引用了log4net 这个.这里简单介绍下,为什么引用这个. log4net是记录程序日志信息的,是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控 ...

  7. Topshelf 一个简化Windows服务开发的宿主服务框架

    Topshelf是 基于.net框架开发的宿主服务框架.该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务.之所以这样原因非常简单:调试一个控 ...

  8. log4net示例2-日志输入存入Access(转)

    需求:基于log4net组建,创建Console程序将日志输出到Access数据库. 具体实施: (1)创建控制台程序. (2)控制台程序中,添加一个纯文本文件,文件命名为“log-Access.se ...

  9. Log4Net日志的简单使用示例

    前言 源码参考示例地址 http://www.51aspx.com/Code/log4netusedemo/2707 本例博客园源码 https://files.cnblogs.com/files/m ...

随机推荐

  1. 5,pandas高级数据处理

    1.删除重复元素 使用duplicated()函数检测重复的行,返回元素为布尔类型的Series对象,每个元素对应一行,如果该行不是第一次出现,则元素为True - keep参数:指定保留哪一重复的行 ...

  2. 对于STM32别名区的理解 (转载)

    1. 什么是位段.位带别名区? 2. 它有什么好处? 答1: 是这样的,记得MCS51吗? MCS51就是有位操作,以一位(BIT)为数据对象的操作,       MCS51可以简单的将P1口的第2位 ...

  3. luogu4196 [CQOI2006]凸多边形 半平面交

    据说pkusc出了好几年半平面交了,我也来水一发 ref #include <algorithm> #include <iostream> #include <cstdi ...

  4. gVim的 设置

    在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab TAB替换为空格::set ...

  5. Spring mvc+hibernate+freemarker(实战)

    Spring mvc+hibernate+freemarker(实战) 博客分类: Spring Spring mvchibernatefreemarkerwebjava  今天我为大家做了一个 sp ...

  6. 七夕蠕虫“XX神器”逆向分析

    转载请注明出处 ____________________________________________________________________________________________ ...

  7. spring 笔记3: Spring 多环境配置文件切换

    使用Spring进行开发时,需要面对不同的运行环境,比如开发环境.测试环境.生产环境等.大多时候不同的环境需要不同的配置文件.网上很多资料都是使用Spring的Bean definition prof ...

  8. BeanShell中Sring变量引用

    问题现象:BeanShell中,一个String类型的字符串存在多个变量,通过${}引用变量后,发送到服务器的还是${} 解决方法:String类型数据中存在多个变量时,使用"+变量+&qu ...

  9. 基于linux操作系统安装、使用redis详解

    服务端安装 Redis的官方下载站是http://redis.io/download,可以去上面下载最新的安装程序下来,我写此文章时的的稳定版本是2.6.11. 步骤一: 下载Redis 进入软件安装 ...

  10. [hdu6435]Problem J. CSGO

    题目大意:给定$n$个$A$类元素和$m$个$B$类元素,每类元素有值$S$和$k$个值$x_0,x_1,\dots,x_{k-1}(k\leqslant 5)$. 要求选出一个$A$类元素$a$和$ ...