zoukankan      html  css  js  c++  java
  • log4net使用经验总结

    下面介绍几条我认为比较好的经验,让我们更好的运用log4net

    1.web程序时不把log4net的配置文件放在web.config中

    原因:一个项目随着需求的变更,配置字节会特别多,不便查阅及维护。而且一但更改配置文件,就会引起IIS重启。(局数据中的web.config中的配置,如果经常变动也应该精简和移出)。 解决方案:我们可以利用以下方法来实现: (1)  log4net.Config.XmlConfigurator.ConfigureAndWatch(string filePath) 它用来加载配置文件,这个配置文件可以放在任意地方,与WEB程序完成分离,更改此文件可以避免IIS的重启。其中filePath必须为绝对路径。 (2)、在程序集下的AssemblyInfo.cs中加入

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)] 配置文件放在web框架的根目录下。

    2.写一个调用log4net的公共类,根据不同的功能模块来生成不同的ILog接口

    项目中程序都会分成很多不同的模块,如果所有的模块的日志都写在一个目录里面,那在查阅的时候会是一种麻烦,我们可能根据不同的模块甚至更详细的功能来设置日志文档的存储路径。例如:Collect/debug_log.txt,StandData/debug_log.txt等等。

    3.不同级别的信息放到不同的文件中

    这个和2中的思想类似,只不过分类方法不同而已。

    4.log4net并不一定要在程序发生错误时才记录日志

    你可以把程序的业务逻辑处理过程都记录下来。在不需要的时候是可以通过配置文件关闭的。(比如说我们局数据中的采集业务逻辑和任务调度非常繁杂,如果程序出错,在判断错误时往往会非常困难,你可以把执行过程都记录下来,这样当程序出错时你通过日志就知道在哪一步出问题了。记录这种日志时可以用级别最低的Info来记录,程序稳定后在配置文件中更改日志记录级别就可以避免在程序无错时也记录日志的负载了)

    5.用System.Reflection.MethodBase.GetCurrentMethod().DeclaringType作为参数用到log4net.LogManager.GetLogger("")

    Log4net框架定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框架里不存在该Logger对象,它也会为我们创建一个Logger对象。代码如下所示:
    1. log4net.ILog log = log4net.LogManager.GetLogger("logger-name");
    通常来说,我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname)方法来获得,或者可以用如下的反射方法来获得:
    1. System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
    尽管符号长了一些,但是后者可以用于一些场合,比如获取调用方法的类(class)的类型(type)。

    总结

    上面是我在使用log4net中总结出的一些个人认为比较好的经验,总结出来,希望对大家有所帮助。如果觉得上面的经验不对,请大家指出来,如果有更好的经验大家也可以在下面留言告诉我。用来帮助更多的人。
  • 相关阅读:
    vue自动路由-单页面项目(非build时构建)
    建立多页面vue.js项目
    C#调用C++(QT5.5.1项目)的C++/CLI(CLR项目)项目技术笔记
    自建Socket转发,使用远程桌面(mstsc)连接家中电脑
    用Vue.js搭建一个小说阅读网站
    在CentOS中部署.Net Core2.1网站
    高价值干货:这可能是你见过最全的网络爬虫总结
    【DevCloud·敏捷智库】如何利用用户故事了解需求
    项目管理:如何显性管理并提升Story分解能力
    【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
  • 原文地址:https://www.cnblogs.com/vsdot/p/3263440.html
Copyright © 2011-2022 走看看