C#使用log4net
C#很多异步机制使程序无法使用断点调试,这时候我们就需要使用日志输出。使用log4net一定要先引用net4log这个dll,不然无法使用。
作者很懒,直接上代码吧。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using log4net; namespace HacFin.SuperCapture.Switcher
{
public static class LogHelper
{
private static bool IsLogOpen = true;
public static ILog log = log4net.LogManager.GetLogger("HKFY_");
public static void LogUserAction(this Object sender, String msg)
{
if (!IsLogOpen) return;
LogDebug(sender, msg, "UserAction");
} public static void LogMeasureIn(this Object sender, String msg)
{
if (!IsLogOpen) return;
LogInfo(sender, msg, "Measure_In");
} public static void LogMeasureOut(this Object sender, String msg)
{
if (!IsLogOpen) return;
LogInfo(sender, msg, "Measure_Out");
} public static void LogDebug(this Object sender, String msg = "", String title = "")
{
if (!IsLogOpen) return;
String txt = title + " - " + msg;
log.Debug(txt);
} public static void LogWarn(this Object sender, String msg = "", String title = "")
{
if (!IsLogOpen) return;
String txt = title + " - " + msg;
log.Warn(txt);
} #region - 致命错误不受开关控制,一直需要记录
public static void LogError(this Object sender, String msg = "", String title = "")
{
String txt = title + " - " + msg;
log.Error(txt);
} public static void LogFatal(this Object sender, String msg = "", String title = "")
{
String txt = title + " - " + msg;
log.Fatal(txt);
}
#endregion
public static void LogInfo(this Object sender, String msg = "", String title = "")
{
if (!IsLogOpen) return;
String txt = title + " - " + msg;
log.Info(txt);
} public static String ToFullLogInfo(this Exception ex)
{
if (ex == null) return String.Empty; String exMsg = ex.Message;
if (ex.Source != null) exMsg += Environment.NewLine + ex.Source;
if (ex.StackTrace != null) exMsg += Environment.NewLine + ex.StackTrace;
if (ex.InnerException != null)
{
exMsg += Environment.NewLine + "InnerException : " + ex.InnerException.Message;
if (ex.InnerException.Source != null) exMsg += Environment.NewLine + ex.InnerException.Source;
if (ex.InnerException.StackTrace != null) exMsg += Environment.NewLine + ex.InnerException.StackTrace;
}
return exMsg;
} }
}
C#使用log4net的更多相关文章
- Log4net - 规则简介
参考页面: http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html http://www.yuanjiaocheng.net/entity/ ...
- Log4net - 项目使用的一个简单Demo
参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...
- log4net使用手册
1. log4net简介 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.Java平台下,它还 ...
- Log4Net应用问题
问题 一.日志存储方式 1.txt 2.SQLServer数据库 3.log文件 二.项目类型不同 1winFrom 2webFrom 3MVC 4WPF 5控制台 三.切分依据不同 1.空间大小 2 ...
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- Log4net入门(帮助类篇)
在前几篇Log4net入门文件的讲述过程中,我们在使用log4net的类中都要编写如下一行代码: private static log4net.ILog log = log4net.LogManage ...
- Log4net入门(WCF篇)
在上一篇Log4net入门(ASP.NET MVC 5篇)中,我们讲述了如何在ASP.NET MVC 5项目中使用log4net.在这一篇中,我们将讲述如何在WCF应用中使用log4net,为了讲述这 ...
- Log4net入门(ASP.NET MVC 5篇)
在前4篇Log4net入门文章中,我们讲述了log4net的一些简单用法,在这一篇中我们主要讲述如何在ASP.NET MVC 5项目中将日志信息写入SQL Server数据库中. 一.创建最简单的AS ...
- Log4net入门(SQL篇)
我们在Log4net入门(回滚日志篇)中详细讲述了如何将日志信息输出到日志文件中,在这一篇中,我们将讲述如何将日志文件写入SQL Server数据库,以方便我们分析统计日志信息. 首先,我们在SQL ...
- Log4net入门(回滚日志文件篇)
在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会 ...
随机推荐
- 导出函数结构 EXPORT_DIRECTORY
typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; //输出表的创建时间 WORD ...
- AtomicInteger小小的理解
这里仅仅是验证多线程环境下,AtomicInteger的安全性. 通过源码不难发现两点: 1.value属性是volatile修饰 2.使用了unsafe的CAS操作 通过上述两点,实现非阻塞同步(乐 ...
- perl dbi 测试 mysql wait_timeout
The number of seconds the server waits for activity on a noninteractive connection before closing it ...
- 虚拟机LUN扩大后,重新分区
[root@ywcrmdb ~]# fdisk -l Disk /dev/sda: 751.6 GB, 751619276800 bytes 255 heads, 63 sectors/track, ...
- sigaction 用法实例
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作). 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该 ...
- Acdream1157---Segments (CDQ分治)
陈丹琦分治~~~其实一些数据小的时候可以用二维或者多维树状数组做的,而数据大的时候就无力的题目,都可以用陈丹琦分治解决. 题目:由3钟类型操作:1)D L R(1 <= L <= R &l ...
- HDU-1047(DP-二进制状态压缩)
Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of h ...
- C++ 哈希表
从2011年开始,C++支持非排序的unordered_map和unordered_set(原先的map和set都是通过有序结构实现的) 下面是一些性能上的测试 #include<iostrea ...
- Boyang Tex上海帛扬时装面料有限公司
Boyang Tex 上海帛扬时装面料有限公司是一家从事开发.推广销售高级时装面料的专业公司.各国高级男女时尚面料荟萃,引领时尚潮流,为国内外众多知名服饰品牌提供最 新颖时尚的高档时装面料,产品为众多 ...
- 数据库中的schema概念
原文地址:http://blog.sina.com.cn/s/blog_7952e89001010jlj.html 数据库的初学者往往会对关系型数据库模式(schema).数据库(database). ...