加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

log4net日志组件经验分享

发布时间:2020-12-17 01:24:44 所属栏目:安全 来源:网络整理
导读:我们在开发 WEB 项目的时候 , 经常会出现这样的情况 : 在本地调试都是正常的 , 但是部署到服务器上就不行了 . 一般出现这种情况很大一部分原因是因为服务的环境和本地不同 , 数据库的配置以及服务器软件环境 . 如何能够准确快速的判断问题的所在呢 ? 本人总

  我们在开发 WEB 项目的时候 , 经常会出现这样的情况 : 在本地调试都是正常的 , 但是部署到服务器上就不行了 . 一般出现这种情况很大一部分原因是因为服务的环境和本地不同 , 数据库的配置以及服务器软件环境 . 如何能够准确快速的判断问题的所在呢 ? 本人总结了我平时用过的三种方法 .

   第一 : 凭经验 . 自己写的程序当然对于业务逻辑会非常清楚 , 页面执行到什么程度 , 什么地方可能会出错 , 凭经验也能猜出可能出错的地方 . 这种方法依赖于程序员的经验 .

   第二 : 让应用程序报出黄页 , 显示具体的错误信息 . 这种方法可以非常直观的看出程序的错误所在 . 但是如果是正式环境 , 程序是不可能让出现报黄页的情况 , 用户看到错误黄页对于管理者来说简直就是一种恶梦 . 一般都会跳到一个自定义的错误页 , 显示些系统错误之类的信息 . 这种情况第二种方法就行不通了 .

   第三 : 记录错误日志 . 利用 try catch 机制来捕获错误信息 , 然后将错误信息记录在日志中 , 供日后查找 . 显然第三种方法是最佳的方式 , 这种方式的实现 , 一般分为两种 :

   一种 : 自己写这种记录日志的组件 .

   二种 : 利用第三方组件 , 例如 :log4net.

   这两种方式都是可行的 , 只要能够满足你的需求什么方式并不重要 . 利用第三方组件来说简单点 , 这里就说了 log4net 的应用 . 这个组件在几年前就有了 , 只是我并没有用 . 现在在项目是发现了它的存在 , 才知道它的重要性 . 首先来说下 log4net 组件的优点吧 :

   第一 : 支持多种记录日志的方式 , 可分为邮件形式 , 文本形式 , 数据库存储 , 等等 .

   第二 : 在大并发的情况下很好的解决了写入同一文件的问题 .

   第三 : 可根据日期以及文件大小来生成不同的日志文件 .

   第四 : 配置相对简单 , 调用也方便 .

   园子里面已经有不少朋友写过 log4net 的文章 , 本人都是受教者 , 现在只是想更多的分享下使用 log4net 的经验 . 可以说是对它应用的一种唠叨吧 .

   要想利用 log4net, 我把它分为三步 :

   第一 : 在项目中引用 log4net 组件 .

   第二 : 配置 log4net, 一般都写在 web.config .

   第三 : 调用部分 .

  具体怎么配置 , 我不想多说 , 官方文档中已经写的太清楚了 , 也不是本文的重点 . 这里就我的经验和大家分享下 :

   经验一 : 配置文件不写在 web.config .

   理由 :

  一个项目随着需求的变更 , 配置字节会特别多 , 不便查阅及维护 . 而且一但更改配置文件 , 就会引起 IIS 重启 .

   解决方案 : 我们可以利用以下方法来实现 :

   log4net.Config.XmlConfigurator.ConfigureAndWatch(string filePath)

   它用来加载配置文件 , 这个配置文件可以放在任意地方 , WEB 程序完成分离 , 更改此文件可以避免 IIS 的重启 .

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

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

   经验三 :log4net 并不一定要在程序发生错误时才记录日志 , 你可以把程序的业务逻辑处理过程都记录下来 .

   例如有一个非常复杂的业务处理 , 里面可能会调用 webservice, 第三方接口什么的 , 此时如果程序出错 , 程序员在判断错误时往往会非常困难 , 你可以把执行过程都记录下来 , 这样当程序出错时你通过日志就知道在哪一步出问题了 . 记录这种日志时可以用级别最低的 Info 来记录 , 程序稳定后在配置文件中更改日志记录级别就可以避免在程序无错时也记录日志的负载了 .

?

http://tech.ddvip.com/2009-01/1232005989105926.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读