简单实用的Log4net帮助类

时间:2023-01-07 22:44:01

一直使用Log4net,进行日志记录。今天把实用的帮助类,在博客园进行一下公布

首先,添加一个log4net配置文件

<?xml version="1.0"?>
<log4net debug="false" >
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs/"/>
<datePattern value="yyyy-MM/yyyy-MM-dd.LOG"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<staticLogFileName value="false"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[时刻]:%d%n[类别]:%p%n[消息]:%m%n[线程]:%t%n[文件]:%F%n[对象]:%c%n[行号]:%L%n[消耗]:%r毫秒%n%n" />
</layout>
</appender>
<root>
<level value="OFF"/>
</root>
<logger additivity="false" name="lance" >
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</logger>
</log4net>

很全,基本上要看的也就这几个了

然后用一个单例,来加载Log帮助类,程序中均调用此帮助类进行日志记录功能

public class LogHelper
{
private static LogHelper logHelper = null;
public ILog Log
{
get;
set;
}
private LogHelper()
{
Log = log4net.LogManager.GetLogger("lance");
string path = AppDomain.CurrentDomain.BaseDirectory + "\\Pages\\log4net.config";
System.IO.FileInfo file = new System.IO.FileInfo(path);
log4net.Config.XmlConfigurator.Configure(file);
} public static LogHelper GetInstance()
{
if (logHelper == null)
{
logHelper = new LogHelper();
}
return logHelper;
}
}

接下来就是愉快的调用了

ILog log = LogHelper.GetInstance().Log;
log.Info("这里写需要记录的东西");

Log4net 具体配置明细 推荐一个博客:http://blog.csdn.net/pfe_nova/article/details/12225349

简单实用的Log4net帮助类的更多相关文章

  1. 简单实用的PHP验证码类

    一个简单实用的php验证码类,分享出来 ,供大家参考. 代码如下: <?php /** @ php 验证码类 @ http://www.jbxue.com */ Class code { var ...

  2. 最近采集写的一个超简单实用的HTML解析类

    1. [文件] HtmlDom.php <?php$oldSetting = libxml_use_internal_errors( true ); libxml_clear_errors(); ...

  3. C&num;反射实现 C&num; 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C&num; ADO&period;NET的SqlDataReader对象&comma;判断是否包含指定字段 页面中添加锚点的几种方式 &period;net 简单实用Log4net(多个日志配置文件) C&num; 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  4. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  5. php简单实用的操作文件工具类(创建、移动、复制、删除&rpar;

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  6. 简单实用的原生PHP分页类

    一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...

  7. iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

    一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...

  8. zw版&lowbar;Halcon图像交换、数据格式、以及超级简单实用的DIY全内存计算&period;TXT

    zw版_Halcon图像交换.数据格式.以及超级简单实用的DIY全内存计算.TXT Halcon由于效率和其他原因,内部图像采用了很多自有格式,提高运行速度,但在数据交换方面非常麻烦. 特别是基于co ...

  9. LogCook 一个简单实用的Android日志管理工具

    众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...

随机推荐

  1. 【MySQL】pt-query-digest数据处理并关联业务

    参考:www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.htm 通过pt-query-digest将慢日志导入数据库后在表global_q ...

  2. 使用WebDriver遇到的那些坑

    在做web项目的自动化端到端测试时主要使用的是Selenium WebDriver来驱动浏览器.Selenium WebDriver的优点是支持的语言多,支持的浏览器多.主流的浏览器Chrome.Fi ...

  3. Hive drop table batched

    if the hive version not support drop table tablename purge. your drop table command will move data t ...

  4. 深入理解abstract class和interface&lpar;转&rpar;

    原文地址 深入理解abstract class和interface java提高篇(四)-----抽象类与接口

  5. spoj 247

    不管行列   总是先切割切割费用大的  代码比较烂 ...... #include <iostream> #include <cstdio> #include <cstr ...

  6. 打包程序时的证书问题&lpar;上传APP就出现Missing iOS Distribution signing indetity for&rpar;

    现象: 解决办法: 1.删除本地钥匙串中的这个文件,注意“系统”中的同名文件也必须删除 2.进入http://www.apple.com/certificateauthority/ 下载新的(WWDR ...

  7. BZOJ 1355&colon; &lbrack;Baltic2009&rsqb;Radio Transmission &lbrack;KMP 循环节&rsqb;

    1355: [Baltic2009]Radio Transmission Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 792  Solved: 535 ...

  8. MyBatis框架概述

    MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设 ...

  9. &period;NET Core Session的简单使用

    前言 在之前的.NET 里,我们可以很容易的使用Session读取值.那今天我们来看看 如何在.NET Core中读取Session值呢? Session 使用Session之前,我们需要到Start ...

  10. VS界面控件大小调整

    vs2015 ,配置名称显示不全,怎么才能把这个搞宽? 这个问题困扰时间挺长了, 对vs的应用仅限于敲代码.编译, 其他的功能了解甚少, 于是试着在右键菜单中找到了界面自定义窗口, 如下: 找到想要修 ...