C#通过log4net进行异常记录
C#中异常的记录也有一个模板,就是log4net。多的就不说了直接看怎么用的吧。

1、引用log4net.dll。

2、实现log4net的方法。

public class LogImplement
{
private ILog logger; public LogImplement(ILog log)
{
this.logger = log;
} public void Debug(object message)
{
this.logger.Debug(message);
} public void Debug(object message, Exception e)
{
this.logger.Debug(message, e);
} public void Warming(object message)
{
this.logger.Warn(message);
} public void Warming(object message,Exception e)
{
this.logger.Warn(message, e);
} public void Error(object message)
{
this.logger.Error(message);
} public void Error(object message, Exception e)
{
this.logger.Error(message, e);
} public void Info(object message)
{
this.logger.Info(message);
} public void Info(object message, Exception e)
{
this.logger.Info(message, e);
}
} public class LogFactory
{
static LogFactory()
{
FileInfo configFile = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"Log.config"); log4net.Config.XmlConfigurator.Configure(configFile);
} public static LogImplement GetLogger(Type type)
{
return new LogImplement(LogManager.GetLogger(type));
} public static LogImplement GetLogger(string str)
{
return new LogImplement(LogManager.GetLogger(str));
}
}

3、配置文件

<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-2.0"/>
</configSections>
<log4net>
<root>
<appender-ref ref="ErrorLogFileAppender"/>
<appender-ref ref="WarningFileAppender"/>
<appender-ref ref="DebugLogFileAppender"/>
</root>
<!--记录warning-->
<appender name="WarningFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\Warn.log"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN"/>
<param name="LevelMax" value="WARN"/>
</filter>
</appender>
<!--记录错误-->
<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\Error.log"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<!--记录调试日志-->
<appender name="DebugLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\debug.log"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="1MB"/>
<param name="StaticLogFileName" value="true"/>
<param name="RollingStyle" value="Size"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="DEBUG"/>
</filter>
</appender>
<!--调试模式,输出日志到控制台-->
<appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR"/>
<foreColor value="Red, HighIntensity"/>
<!--<backColor value="Green" />-->
</mapping>
<mapping>
<level value="DEBUG"/>
<foreColor value="Yellow, HighIntensity"/>
<backColor value="Green"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<footer value="--------------------------------------------------------------------"/>
<param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>

其中, 表示异常文件超过1M大小就自动新增文件;表示异常文件的路径;表示要支持的.net版本。至于其他属性在使用中自己可以慢慢体会。
4、记录异常

public class RecordLog
{
public static void RecordException(Exception e)
{
LogImplement log = LogFactory.GetLogger(typeof(RecordLog)); log.Error(e.Message + e.StackTrace);
}
}

5、调用

static void Main(string[] args)
{
try
{
string test = "123tr"; int i = int.Parse(test);//制造一个异常
}
catch(Exception e)
{
RecordLog.RecordException(e);
}
}

【转】Log4.NET mark的更多相关文章

  1. java.io.IOException: mark/reset not supported

    java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...

  2. [mark] 使用Sublime Text 2时如何将Tab配置为4个空格

    在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: ht ...

  3. 特邀美国EMC实战专家Mark来华授课

    “轻松搞定EMC-PCB和系统设计”课程介绍 本次课程特邀美国EMC领域权威专家Mark Montrose主讲,将涵盖满足产品电磁兼容性和信号完整性的基本原理.课程涉及多个领域,不仅仅针对PCB设计, ...

  4. 如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?

    当把某个文件“Mark as Plain Text”时,该文件被当做普通文本,就不会有“代码自动完成提示”功能,如下图所示: 但是呢,右键菜单中貌似没有 相应的撤销 操作, 即使是把它删除,再新建一个 ...

  5. .net错误日志记录(log4)

    Log4 web.config <!--这段放前面--> <configSections> <section name="log4net" type= ...

  6. vim - mark

    Using markshttp://vim.wikia.com/wiki/Using_marks1. There is no visible indication of where marks are ...

  7. 根据大小生成对应尺寸网络图片的网址(mark)

    当开发程序时,需要用到一些临时图片替代时,需要快速生成的话,以下的几个网址可提供帮助.mark一下,方便以后使用. http://lorempixel.com/http://placehold.it/ ...

  8. vim 标记 mark 详解 (转载)

    http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html Vim 允许你在文本中放置自定义的标记.命令 "ma&q ...

  9. InputStream复用,mark和reset

    markSupported InputStream是否支持mark,默认不支持. public boolean markSupported() { return false; } InputStrea ...

随机推荐

  1. 创建类模式(三):创建者(Builder)

    定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.这使得构件算法和组装方式可以独立应对变化:复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式 ...

  2. flex 弹性合模型

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  3. CSS 背景图片的定位和缩放

    在 CSS 中,利用 background-image 属性我们可以指定元素的背景图片,例如: .example { background-image: url(image/some.png); ba ...

  4. Enterprise Library 服务问题

    在使用Enterprise Library而没有注册服务的时候会出现这样的问题,"Editing Post "Failed to create instances of perfo ...

  5. cocos2d-x 图形绘制

    转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...

  6. Openfire服务器MySQL优化

    Openfire服务器MySQL优化: [root@iZ28g4ctd7tZ ~]# mysql -u root -p XXXXX mysql> show processlist; +----- ...

  7. zookeeper的C#Client

    最近在搭一套soa,  服务使用java/scala 的finagle 协议使用thrift 然后 finagle默认服务端会是使用zookeeper作为节点存储.. 所以想要访问具体服务,需要先通过 ...

  8. BZOJ 4247 挂饰 背包DP

    4247: 挂饰 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id ...

  9. Codeforces Gym 100342E Problem E. Minima 暴力

    Problem E. MinimaTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attac ...

  10. 发布站点到远程FTP根目录

    第一步:修改 phpcms/modules/admin/templates/site_add.tpl.php 找到 <legend><?php echo L('release_poi ...