【转】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);
}
}

时间: 2024-11-05 19:45:37

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

swift pragma mark

众所周知,大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线 用#pragma mark 函数说明,来生成一个函数的说明X 但在swift中,这个语法就不支持了,毕竟它是属于C的语法,于是就有了新的一些语法,如:// MARK: // FIXME // TODO: 等 // MARK: - 生成分隔线 // MARK: 说明 别忘了那个冒号... 参考 :http://stackoverflow.com/questions/24017316/pragma-mark-

Java使用Log4记录日志

我们在系统使用中,为了方便查找问题,因此需要记录操作的日志,而目前比较成熟稳定的程序日志记录方式就是Log4,本人也是菜鸟,然后再学习研究中就记录一下使用方式,以方便今后查阅,同时本文章参考了博客园:http://www.cnblogs.com/zhangpengshou/p/5128050.html 的文章,在此表示感谢. Log4有1.x版本和2.x版本,两个版本的使用方式有很大区别,为了方便在此使用2.x版本. 代码很简单,首先要配置xml,在类的同级创建log4j2.xml如下: <?x

洛谷P3112 [USACO14DEC]后卫马克Guard Mark

题目描述 Farmer John and his herd are playing frisbee. Bessie throws the frisbee down the field, but it's going straight to Mark the field hand on the other team! Mark has height H (1 <= H <= 1,000,000,000), but there are N cows on Bessie's team gathere

Eclipse Mark Occurrences

Mark Occurrences The Mark Occurrences feature enables you to see where an element is referenced by simply clicking on the element in the editor. When the Mark Occurrences feature is enabled, all occurrences of the element within the active file will

罗列各种排序Mark

那么,首先是我们所熟悉的各种排序的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O(n2) O(n2) 稳定 O(1) 二叉树排序 O(n2) O(n*log2n) 不一顶 O(n) 插入排序 O(n2) O(n2) 稳定 O(1) 堆排序 O(n*log2n) O(n*log2n) 不稳定 O(1) 希尔排序 O O 不

Linux,OS X mark工具(目录跳转工具)

转帖请注明出处  林夕木大大 在命令行里进行一些操作时,经常会遇到在多个目录之间来回切换的情况.这个时候就会很是苦恼.所以在网上搜索一番后总结如下: Ubuntu/CentOS: 编辑 .bash_profile(或.profile) 添加如下内容: 1 export MARKPATH=$HOME/.marks 2 3 #mark 在你想马克的目录 : mark 别名 4 function mark { 5 mkdir -p "$MARKPATH"; ln -s "$(pwd

sin miss the mark

Guilt should only be a call to action. When we see that we "missed the mark"(the meaning of sin in the original biblical Greek) we only need to correct our aim and try again. Repeated self-blame does not improve behavior or skill; practice and c

#10.09# 活动预告:iPad大奖,快来Mark 9大产品评测活动!

#10.09#活动预告:iPad大奖,快来Mark 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗了一下,居然有9个产品在免费公测. 为了协助您上手新的云产品,借助阿里云9大产品免费公测活动,您可以测试工作负载,运行应用程序:还可以通过评测文章交流,学习到更多知识,为您构建合适的云产品解决方案. 趁UED哥哥在忙着做活动页面,虽然还要等好几天才能做好活动页面,可素,我已等不及要把活动的好消息放出来啦.

善用#waring,#pragma mark 标记

在项目开发中,我们不可能对着需求一口气将代码都写好.开发过程中肯定遇到诸如需求变动,业务逻辑沟通,运行环境的切换等这些问题.当项目大的时候,如果木有形成统一的代码规范,在项目交接和开发人员沟通上将会带来很大的麻烦. #pragma mark - 这个标记在iOS开发中用得最多了.其实最主要的是用来进行标记的,当然也有注释的作用在里面.当然我们也可以用//,/* */等常用注释来说明.但是用#pragma mark -不同的是可以将整个文件的函数以类似分组的形式展现.当我们点击Xcode 导航栏上