【转】Log4.NET mark
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的更多相关文章
- java.io.IOException: mark/reset not supported
java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...
- [mark] 使用Sublime Text 2时如何将Tab配置为4个空格
在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: ht ...
- 特邀美国EMC实战专家Mark来华授课
“轻松搞定EMC-PCB和系统设计”课程介绍 本次课程特邀美国EMC领域权威专家Mark Montrose主讲,将涵盖满足产品电磁兼容性和信号完整性的基本原理.课程涉及多个领域,不仅仅针对PCB设计, ...
- 如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?
当把某个文件“Mark as Plain Text”时,该文件被当做普通文本,就不会有“代码自动完成提示”功能,如下图所示: 但是呢,右键菜单中貌似没有 相应的撤销 操作, 即使是把它删除,再新建一个 ...
- .net错误日志记录(log4)
Log4 web.config <!--这段放前面--> <configSections> <section name="log4net" type= ...
- vim - mark
Using markshttp://vim.wikia.com/wiki/Using_marks1. There is no visible indication of where marks are ...
- 根据大小生成对应尺寸网络图片的网址(mark)
当开发程序时,需要用到一些临时图片替代时,需要快速生成的话,以下的几个网址可提供帮助.mark一下,方便以后使用. http://lorempixel.com/http://placehold.it/ ...
- vim 标记 mark 详解 (转载)
http://www.cnblogs.com/jianyungsun/archive/2011/02/14/1954057.html Vim 允许你在文本中放置自定义的标记.命令 "ma&q ...
- InputStream复用,mark和reset
markSupported InputStream是否支持mark,默认不支持. public boolean markSupported() { return false; } InputStrea ...
随机推荐
- web config数据库连接字符串加密
ASP.NET web.config中,数据库连接字符串的加密与解密 ASP.NET web.config中,数据库连接字符串的加密与解密. 开始--->运行,输入cmd,接着输入以下内容 加密 ...
- angurlajs 如何绑定Jquery
//绑定Jqueryfunction bindJQuery() { // bind to jQuery if present; jQuery = window.jQuery;//获取windows 的 ...
- Cocos2d-x——pthread的使用注意事项
1:多线程所调用的成员方法定义为static. 2:互斥锁(pthread_mutex_t)定义在cpp文件的开头,并且也定义为static. 3:pthread_mutex_init方法尽量在最早的 ...
- java中hashcode和equals的区别和联系
HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键. 那么Java运行时环境是如何判断HashSet中相同对象.Ha ...
- java中的hashcode和euqals的区别和联系
一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一 ...
- C#制作一个消息拦截器(intercept)1
首先,我们先要制作一个自己定义Attribute,让他能够具有上下文读取功能,所以我们这个Attribute类要同一时候继承Attribute和IContextAttribute. 接口IContex ...
- android.content.res.Resources$NotFoundException:String resource ID #ffffffff
无语,搞了半天,只能去插这个错误代号,结果就找到了这个结果. scoreTextView.setText(score+""); 这个一定要自己手动转换..不科学啊..关键是在ecl ...
- MHA自动Failover过程解析(updated) 转
允许转载, 转载时请以超链接形式标明文章原始出处和网站信息 http://www.mysqlsystems.com/2012/03/figure-out-process-of-autofailover ...
- Mac 下配置Tomcat7和eclipse中配置tomcat
转载自: http://www.cnblogs.com/weilaikeji/archive/2013/05/29/3106473.html 1.下载Tomcat 从Tomcat项目主页下载相关压缩包 ...
- BootStrap2学习日记12---注册表单
<form method="" action="" class="form-horizontal"> <frameset& ...