继承log4.net的类
using System;
using System.Diagnostics; [assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Hbl.Core
{
public static class Log
{ /// <summary>
/// 一般错误
/// </summary>
/// <param name="message">消息</param>
public static void Error(object message)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Error(message); } /// <summary>
/// 一般错误
/// </summary>
/// <param name="message">消息</param>
/// <param name="exception">异常</param>
public static void Error(object message, Exception exception)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Error(message, exception);
} /// <summary>
/// 信息
/// </summary>
/// <param name="message">消息</param>
public static void Info(object message)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Info(message);
} /// <summary>
/// 信息
/// </summary>
/// <param name="message">消息</param>
/// <param name="exception">异常</param>
public static void Info(object message, Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Info(message, ex);
} /// <summary>
/// 警告
/// </summary>
/// <param name="message">消息</param>
public static void Warn(object message)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Warn(message);
} /// <summary>
/// 警告
/// </summary>
/// <param name="message">消息</param>
/// <param name="exception">异常</param>
public static void Warn(object message, Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Warn(message, ex);
} /// <summary>
/// 调试
/// </summary>
/// <param name="message">消息</param>
public static void Debug(object message)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Debug(message);
} /// <summary>
/// 调试
/// </summary>
/// <param name="message">消息</param>
/// <param name="exception">异常</param>
public static void Debug(object message, Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());
log.Debug(message, ex);
} static string GetCurrentMethodFullName()
{
try
{
int depth = ;
StackTrace st = new StackTrace();
int maxFrames = st.GetFrames().Length;
StackFrame sf;
string methodName, className;
Type classType;
do
{
sf = st.GetFrame(depth++);
classType = sf.GetMethod().DeclaringType;
className = classType.ToString();
} while (className.EndsWith("Exception") && depth < maxFrames);
methodName = sf.GetMethod().Name;
return className + "." + methodName;
}
catch
{
return null;
}
}
}
}
继承log4.net的类的更多相关文章
- JS面向对象组件 -- 继承的其他方式(类式继承、原型继承)
继承的其他形式: •类式继承:利用构造函数(类)继承的方式 •原型继承:借助原型来实现对象继承对象 类 : JS是没有类的概念的 , 把JS中的构造函数看做的类 要做属性和方法继承的时候,要分开继 ...
- Cocos2d 3.0继承自Sprite的类在addChild后出现故障
当继承自Sprite的类被addChild到其它的Node里后出现例如以下图问题,说明没有调用父类Sprite::init()的方法.由于父类Sprite里的_textureAtlas须要初始化为nu ...
- C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域
面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使 ...
- c++ 容器、继承层次、句柄类
一.容器与继承 在容器中保存有继承关系的对象,如果定义成保存基类对象,则派生类将被切割,如果定义成保存派生类对象,则保存基类对象又成问题(基类对象将被强制转换成派生类对象,而派生类中定义的成员未被初始 ...
- 第10章 接口、继承与多态----Object类
在Java中,所有的类都直接或间接继承了java.lang.Object类.Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类.当创建一个类时,总是在继承,除非某个类已经指定要 ...
- 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】
一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self ...
- WPF 之 创建继承自Window 基类的自定义窗口基类
开发项目时,按照美工的设计其外边框(包括最大化,最小化,关闭等按钮)自然不同于 Window 自身的,但窗口的外边框及窗口移动.最小化等标题栏操作基本都是一样的.所以通过查看资料,可按如下方法创建继承 ...
- A:LinkedList实现了List接口; B: AbstractSet实现了Set接口; C: HashSet继承自AbstractSet基类; D: WeakMap继承自 AbstractMap
List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedListSet有两个实现类:HashSet和LinkedHashSetAbstractS ...
- Java 线程--继承java.lang.Thread类实现线程
现实生活中的很多事情是同时进行的,Java中为了模拟这种状态,引入了线程机制.先来看线程的基本概念. 线程是指进程中的一个执行场景,也就是执行流程,进程和线程的区别: 1.每个进程是一个应用程序,都有 ...
随机推荐
- 在 Windows 上快速安装并运行 Laravel 5.x
安装 PHP 注意一:Laravel 5.0 开始对 PHP 版本的要求是 >=5.4,Laravel 5.1 要求 PHP 版本>=5.5.9,所以,建议大家尽量安装 5.5.x 的最新 ...
- Kubenertes资源分配之Request和Limit解析
收录待用,修改转载已取得腾讯云授权 Kubernetes是一个容器集群管理平台,Kubernetes需要统计整体平台的资源使用情况,合理地将资源分配给容器使用,并且要保证容器生命周期内有足够的资源来保 ...
- Fireworks如何制作透明窗口PNG
1 做好的透明PNG窗口如图所示,打开之后可以发现其实分层的PNG和Photoshop打开一个PSD文件类似. 2 但是Photoshop并不会像Fireworks一样可以编辑分层的PNG,在打开分层 ...
- hdu 1087 简单dp
思路和2391一样的.. <span style="font-size:24px;">#include<stdio.h> #include<strin ...
- model模块
所谓的模块就是一个独立的文件,文件与文件之间是相互封闭的. //-----------------modeltest.js----------------- export var webName = ...
- 用sql语句查出和sql相关的性能计数器
一台服务器上,用性能监视器死活显示不出来一部分计数器,没办法,用sql语句查了 --所有和sql相关的计数器 select * from sys.dm_os_performance_counters ...
- 从chrome商店直接下载crx文件
从chrome商店直接下载crx文件 CreateTime--2018年5月21日17点18分 Author:Marydon 1.前提 需要知道你所下载的插件的id 查看方法: 第一步:打开扩展程 ...
- JDBC JdbcUtils( 本博多次出现的简陋工具类)
package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; ...
- 转:【微信小程序】实现锚点定位楼层跳跃的实例
微信小程序实现楼层锚点跳跃,点击不同的锚点进行位置跳跃: 利用:scroll-into-view 来实现: 效果图: wxml: <scroll-view class="cont ...
- mosquitto $SYS下topic
$SYS/broker/clients/connected