zoukankan      html  css  js  c++  java
  • log4net 1.2.9 的配置及使用

    下面说说我的做法,当然办法肯定不止这一个,我这个算是给新手一个指南 :)
    问题是这样的,现在Log4net上公布的是1.2.9版,但是现在网上可以查到的资料都是基于1.2或一下的,这两个版本的不同在于,以前版本使用 log4net.Config.DOMConfigurator进行初始化配置,可是最新版里这个方法被弃用了,sdk文档上建议使用 log4net.Config.XmlConfigurator。可是详细的使用方法却不是很清楚,一开始我是按照以前版本的办法,没有加参数,直接放在 Application_Start方法中,当然不行……可是我对log4net的使用完全不了解,我想得先明确我的xml配置文件及使用方法没有问题。于是决定先去网上下一个以前版本的。好不容易找到一个,下载,配置……没有问题,哈~这证明就是初始化配置没有问题,于是再把版本换成1.2.9,并且拿出了厚厚的英文文档,配置着示例程序,终于弄明白该怎么使用。下面是具体的配置办法:
    xml配置单独放到一个文件,我起的名字是log4net.config,然后在global.asax.cs中这样作:
    protected void Application_Start(Object sender, EventArgs e)
    {
    //配置log4net
    log4net.Config.XmlConfigurator.Configure( new FileInfo("log4net.config") );
    }
    使用一个FileInfo对象来指定配置文件,然后还需要加一个程序集特性
    [assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config", Watch=true)]
    这个是用来指定我们使用了另外的xml配置文件。
    完成这两步就没有问题了。

    下面说说这个的使用,初用这个时候可能会被那一大堆文档和配置节吓倒,其实如果是简单应用的话,就一点也不麻烦,像我现在在stella2中的用法,现确定你要用什么来记录日志,比如我是把日志记录在数据库中,那就到文档中去查找这方面的配置示例,之后完整的复制到你的配置文件中就可以用了,呵呵
    在这里有一点要注意:
    <logger name="StellaLogger">
    <level value="ALL"/>
    <appender-ref ref="AdoNetAppender" />
    </logger>
    最好是在logger节里预先取好名字,然后就可以很方便的使用,比如我这个
    public class Logger : IServices.ILogger
    {
    //使用自己取得名字
    private static log4net.ILog log=log4net.LogManager.Exists("StellaLogger");
    public void LogMessage(string msg)
    {
    log.Info(msg);
    }

    void Stella2.IServices.ILogger.LogException(string note, Exception exp)
    {
    log.Warn(note,exp);
    }

    void Stella2.IServices.ILogger.DebugTime(string note, Exception exp)
    {
    log.Debug(note,exp);
    }
    }

    这个类是stella forum v2.0使用的日志记录类,大家可能注意到了,这个类实现了ILogger接口,这主要是因为log4net是第三方组件,为了避免依赖,所以使用了接口隔离的办法。使用的时候直接调用接口就可以,以后你要是不喜欢log4net而转为使用ms提供的那个日志记录组件,就不需要大动干戈的,只要把接口后面的实现换掉就可以
    /// <summary>
    /// 记录一条信息到日志
    /// </summary>
    /// <param name="msg">信息</param>
    public static void LogMessage(string msg)
    {
    IServices.ILogger logger=Factory.ServicesFactory.GetLogger();
    logger.LogMessage(msg);
    }
  • 相关阅读:
    虚拟机黑屏
    ngnix随笔三
    ngnix随笔二
    ngnix随笔一
    HTML(初级)笔记
    学习Java注解
    常用工具类与commons 类库
    SpringBoot缓存使用
    LeetCode:98.验证二叉搜索树
    剑指Offer:面试题07.重建二叉树
  • 原文地址:https://www.cnblogs.com/qiao198/p/218560.html
Copyright © 2011-2022 走看看