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"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会 ...
随机推荐
- Swift —构造函数与存储属性初始化-备
构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化.在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和height后,那么在定义他们时就不需要初始化了. ...
- BZOJ3296: [USACO2011 Open] Learning Languages
3296: [USACO2011 Open] Learning Languages Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 81 Solved: ...
- js 数组引用 发现的问题
最近做项目时,要对返回的数据[保存在json数组中]做一次修改,但原数据要保留一次做备用.首先想到,原数据不动,用一个临时的变量来修改,大致模型就是这样: // 原始: a=[1,2,3,4,5,.. ...
- cf509B Painting Pebbles
B. Painting Pebbles time limit per test 1 second memory limit per test 256 megabytes input standard ...
- css实现居中的各种方法
css垂直居中有很多种方法,可以参考下这个网站
- JDBC远程从一个MySql数据库中的一张表里面读出数据(这个数据库需要用SSH隧道连接,大约8W条数据),然后分别插入到另一个数据库中的两张表里
package com.eeepay.lzj.db; import java.sql.Connection; import java.sql.Date; import java.sql.DriverM ...
- Highcharts 基本曲线图
基本曲线图实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="UTF-8" / ...
- JavaScript 随机数函数
Math.random()*(m-n)+n random函数语法 Math.random(); random函数返回值 返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) 返回10-20 ...
- POJ 2513 Colored Sticks - from lanshui_Yang
题目大意:给定一捆木棒,每根木棒的每个端点涂有某种颜色.问:是否能将这些棒子首位项链,排成一条直线,且相邻两根棍子的连接处的颜色一样. 解题思路:此题是一道典型的判断欧拉回路或欧拉通路的问题,以木棍的 ...
- Android利用setLayoutParams在代码中调整布局(Margin和居中)
我们平常可以直接在xml里设置margin,如: <ImageView android:layout_margin="5dip" android:src="@dra ...