简单封装的Log4net
1. [代码]使用
log = new Logger(this.GetType());
log.Info("Hello world.");
2. [代码]第二个版本,修复了Console重复发送消息的问题
using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
using log4net.Appender;
using log4net.Layout;
using log4net.Core;
using log4net.Repository.Hierarchy;
namespace ShotInfoImport
{
class AutoLog
{
private Logger logger;
public AutoLog(Type this_getType)
{
//config the log4net to output the file
ILayout layout = new PatternLayout("%d[Thread:%t]%-5p %c [Line:%L] - %m%n");
IAppender fileAppender = new FileAppender(layout, "log.txt");
IAppender consoleAppender = new ConsoleAppender(layout);
BasicConfigurator.Configure(fileAppender);
//error it print the number is up !
BasicConfigurator.Configure(consoleAppender);
//init the log object to output
ILog iLog = LogManager.GetLogger(this_getType);
logger = (Logger)iLog.Logger;
logger.AddAppender(consoleAppender);
logger.AddAppender(fileAppender);
logger.Additivity = false;
}
public void Info(Object message)
{
logger.Log(Level.Info,message, null);
}
public void Info(Object message, Exception exception)
{http://www.bizhizu.cn/linglei/
logger.Log(Level.Info, message, exception);
}另类图片
public void Debug(Object message)
{
logger.Log(Level.Debug, message, null);
}
public void Debug(Object message, Exception exception)
{
logger.Log(Level.Debug, message, exception);
}
public void Warning(Object message)
{
logger.Log(Level.Warn, message, null);
}
public void Warning(Object message, Exception exception)
{
logger.Log(Level.Warn, message, exception);
}
public void Error(Object message)
{
logger.Log(Level.Error, message, null);
}
public void Error(Object message, Exception exception)
{
logger.Log(Level.Error, message, exception);
}
public void Fatal(Object message)
{
logger.Log(Level.Fatal, message, null);
}
public void Fatal(Object message, Exception exception)
{
logger.Log(Level.Fatal, message, exception);
}
}
}
简单封装的Log4net的更多相关文章
- .net core 中简单封装Dapper.Extensions 并使用sqlsuger自动生成实体类
引言 由公司需要使用dapper 同时支持多数据库 又需要支持实体类 又需要支持sql 还需要支持事务 所以采用了 dapper + dapperExtensions 并配套 生成实体类小工具的方 ...
- Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...
- FMDB简单封装和使用
工具:火狐浏览器+SQLite Manager插件 ; Xcode; FMDB库; 效果: 项目地址: https://github.com/sven713/PackFMDB 主要参考这两篇博客: 1 ...
- Android--Retrofit+RxJava的简单封装(三)
1,继续接着上一篇的讲讲,话说如果像上一篇这样的话,那么我们每一次请求一个结构都要创建一堆的Retrofit对象,而且代码都是相同的,我们可以试试封装一下 先创建一个HttpMethods类,将Ret ...
- okhttp3 get post 简单封装
最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpCli ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- 对pymysql的简单封装
#coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 "& ...
- iOS开发——UI篇OC篇&UITableView简单封装
UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也 ...
- iOS sqlite 增删改查 简单封装(基于 FMDB)
/** * 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * * 基于 FMDB * * 操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整 ...
随机推荐
- Ubuntu14下Hadoop开发<1> 基础环境安装
准备了一台淘汰的笔记本.单核CPU.3G内存.160G硬盘:准备一个2G的U盘 在官网下载了64位的14.04版本号(麒麟)的ISO.下载UNetbootin(Ubuntu专用U盘安装工具) 使用UN ...
- ubuntu16.04 opencv3.4.1 opencv-contribute3.4.1 compile
sudo apt install cmake cmake-gui vim git wget -y sudo apt-get install ibus-pinyin sudo apt-get insta ...
- (1) yum源配置-epel
1.获取epel地址 登录https://fedoraproject.org/wiki/EPEL/zh-cn,看“如何获取EPEL的软件包”,根据你的操作系统版本,复制对应的下载地址. 2.下载epe ...
- html5小趣味知识点系列(一)contentEditable
在这里纠正一下某些书籍说 这个修改后的文字内容是无法保存的 的错误必须发送到服务器进行保存才可以(因为我可以保存到内容)看代码吧 也许我理解的不对 <!DOCTYPE html> < ...
- 编辑器模式下如何实例化Prefab
当我们在EditMode下需要用脚本批量添加prefab时,可以用 PrefabUtility.InstantiatePrefab(prefab) as GameObject; 注意:如果用GameO ...
- C语言基础知识【简介】
C 简介1.关于 CC 语言是为了编写 UNIX 操作系统而被发明的.C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的.C 语言标准是于 1988 年由美国国家标准协会(ANSI ...
- 修改Jmeter配置使能支持更大并发
Jmeter做并发测试时,报错 java.lang.OutOfMemoryError:gc overhead limit exceeded. 原因是jmeter默认分配内存的参数很小,256M吧.故而 ...
- 不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1;
答案:一. int strcmp(char *source, char *dest) { /* assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stder ...
- 【BZOJ2806】[Ctsc2012]Cheat 广义后缀自动机+二分+单调队列优化DP
[BZOJ2806][Ctsc2012]Cheat Description Input 第一行两个整数N,M表示待检查的作文数量,和小强的标准作文库的行数接下来M行的01串,表示标准作文库接下来N行的 ...
- PAT 1054. 求平均值 (20)
本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个“合法”的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位.当你计算平均值的时候, ...