log4Net的配置文章一搜一大把,配置使用还是有一些点花费了很多时间,这里整理一下,添上坑,让Developer走的更稳。

编程式配置路径

新建一个配置文件,通过写代码来动态加载log4Net的配置文件。

class Program
{
    static void Main(string[] args)
    {
        log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(Environment.CurrentDirectory + @"\" + "Log4Net.config"));
        ILog logger = LogManager.GetLogger("loggerAX");
        //logger.IsDebugEnabled
        logger.Warn("Test Logger");
    }
}

两点:

1. 就是在载入log的时候,路径需要小心,要么是将文件属性配置为复制到到编译路径(Copy always);如果不配置文件“copy always”,就需要调整加载的路径,使之能够加载到文件;Environment.CurrentDirectory 返回的是Debug或者release路径。

2.加载方式为:

log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(Environment.CurrentDirectory + @"\" + "Log4Net.config"));

系统配置文件配置

所谓系统配置文件就是利用C#中固有的配置文件(web.config,app.config)来进行配置,而不是新建一个配置文件。

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"></section>
</configSections>
<log4net>
<root name="loggerAX">
</configuration>

代码如下:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace MonitorTester
{
class Program
{
static void Main(string[] args)
{
ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
       logger.Error("Test Logger");
}
}
}

两点需要注意一下:

1.添加声明,如果没有这个声明,log对象返回的各个级别(DEBUG~OFF)都将是false;另外你在什么哪个类里面调用“LogManager.GetLogger()”,就在那个类的namespace上面添加这个声明。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

2.代码加载的方式

ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Log4Net的输出模式

  1. log4X是可以打印出函数名称的,打印模式%M就是输出函数名称;这样其实就不需要自己封装底层函数来获取当前函数名称;但是有一点:不能对log4x进行封装了,因为log4x默认输出方法名称是调用ILog接口的第一层函数,封装一层(loggerMan)将会导致%M取得是loggerMan的函数名称;
  2. 在配置模式匹配的时候,如果想要添加单词,可以直接写,模式匹配是以%开始,空格结束的,所以%前面的字母会被原封不动的保留下来:%d %p [TID: %t] %c(Line:%L) - [%M]%n

注:%d:日期;%p:优先级(INFO/debug/warning);%T:进程号;%L:打印发生时类文件的行数;%n:换行

以上,是配置log4Net的关注点;但是为什么不使用Enterprise Library里面的logger呢?还有可视化工具帮助配置。log4Net的优势就是小巧,需要引入就是一个dll。但是对于EL而言,关联引用的dll就是一堆了。所以如果项目中成套使用EL,那么logger还是使用EL的,否则的化,使用小巧轻便的log4Net吧。

Log4Net配置注意点的更多相关文章

  1. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  2. Log4Net 配置StmpAppender

    目录 Log4Net 配置StmpAppender    1 1.前言    1 2.详细配置    1 1.StmpAppender配置    1 2.Root 配置    2 3.更多选项     ...

  3. C# Log4Net配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  4. Log4net配置与使用简要说明

    log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...

  5. MVC Log4Net 配置

    1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...

  6. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  7. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  8. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...

  9. log Log4NET配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过 日志查看系统的运行过程,从而发现系统的问题.日志的作用:将 ...

  10. NHibernate的调试技巧和Log4Net配置

    1.查看nhibernate写在控制台里的sql语句 在配置文件中有这么个选项,假如把它设置为true,nhibernate会把执行的sql显示在控制台上. <property name=&qu ...

随机推荐

  1. Spring Aop重要概念介绍及应用实例结合分析

    转自:http://bbs.csdn.net/topics/390811099 此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.最近项目中遇到了以下几点需求,仔细 ...

  2. ios 码云的使用总结

    今天将项目丢到码云上进行管理,遇到一些比较蛋疼的地方,做个记录,以后方便查询. 码云其实和gitHub差不多,只是在码云上做公司项目的时候设置为私有项目是免费的,貌似在gitHub上是要收费的.本文是 ...

  3. wpf DataGrid CheckBox列全选

    最近在wpf项目中遇到当DataGrid的header中的checkbox选中,让该列的checkbox全选问题,为了不让程序员写自己的一堆事件,现写了一个自己的自定义控件 在DataGrid的 &l ...

  4. CentOS Nginx+jdk+tomcat 环境搭建

    一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa ...

  5. Cocos2d-x 3.1.1 学习日志9--一“上一下其乐无穷”游戏开发系列一

    下载地址:http://app.mi.com/search?keywords=%E4%B8%80%E4%B8%8A%E4%B8%80%E4%B8%8B%E5%85%B6%E4%B9%90%E6%97% ...

  6. xshell十大技巧

    xshell是我用过的最好用的ssh客户端工具,没有之一.这个软件完全免费,简单易用,可以满足通过ssh管理linux vps所有需要,唯一遗憾的是没有官方中文版. 警告:不要下载所谓的汉化版,可能有 ...

  7. asp.net网站性能优化2则

    摘要:Web服务器的性能优化有很多资料介绍了,多台主机负载均衡,查询结果的多级缓 存,数据库索引优化等都是常见的优化手段.随着后端优化空间越来越小,现在越来越多 的网站更注重前端性能的优化,就是浏览器 ...

  8. 【Android】数据库的简单应用——增删改查的操作

    还记得getReadableDatabase()和getWritableDatabase()方法吧?在调用它们的时候会返回一个SQLiteDatabase对象,借助这个对象就可以进行CURD(Crea ...

  9. CSS背景颜色、背景图片、平铺、定位、固定

    CSS背景颜色设置 background-color:red;如设置背景颜色为红色: 背景颜色设置支持3种写法: 颜色名 16进制 rgb CSS背景图片颜色设置 background-image:u ...

  10. mysql命令使用

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...