这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录。网上有很多相关的教程,但是各有各的说法,我结合我自己这个项目的需要,首先,项目是分多层的,假如每一层都需要加入日志记录,那该怎么办呢,下面是我的一些操作步骤,记录出来和大家分享一下,不足之处希望大家多拍板砖多多指教。

这个截图是我的当前项目的层次结构,首先在Common层先添加log4net.dll的引用(仅需这里添加引用即可),然后创建一个log4net.config(见红色数字2),我当前项目的1、4、5三处的log4net.config都是同一个,至于每层到底debug输出到的文件名是要叫做”DigitalGolf2Bug.txt“呢还是叫”ServiceApiDebug.txt“呢,可以分开在相应的4或者5里面去配,有更多的层也是同理,如果对名称无特别要求的话,那我默认debug是输出到文件”debug.txt“,而error是输出到”error.txt“,而info是输出到文件”info.txt“,之后打开Common层的AssemblyInfo文件,添加红色数字3的那句代码。最后,在红色数字5的log4net.config上点右键,选择“属性”--“复制到输出目录”--“始终复制”,这样就配置就全部搞定了,只需要在你想输出日志的地方调用LogHelper里面的方法即可。

log4net.config 配置文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <!-- 注册log4net -->
  4. <configSections>
  5. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  6. </configSections>
  7. <log4net>
  8. <!-- 定义日志记录器,可多个 -->
  9. <logger name="logerror">
  10. <level value="ERROR" />
  11. <appender-ref ref="LogErrorAppender" />
  12. </logger>
  13. <logger name="logdebug">
  14. <level value="DEBUG" />
  15. <appender-ref ref="LogDebugAppender" />
  16. </logger>
  17. <logger name="loginfo">
  18. <level value="INFO" />
  19. <appender-ref ref="LogInfoAppender" />
  20. </logger>
  21.  
  22. <!-- 输出到错误信息文件 -->
  23. <appender name="LogErrorAppender" type="log4net.Appender.FileAppender">
  24. <param name="File" value="error.txt" />
  25. <param name="AppendToFile" value="true" />
  26. <param name="MaxSizeRollBackups" value="" />
  27. <!-- 备份日志数目 -->
  28. <param name="MaxFileSize" value="" />
  29. <!-- 日志文件大小10M -->
  30. <param name="StaticLogFileName" value="false" />
  31. <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
  32. <param name="RollingStyle" value="Date" />
  33. <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
  34. <layout type="log4net.Layout.PatternLayout">
  35. <param name="ConversionPattern" value="%n异常时间:%d%n异常级别:%-5p%n异常内容:%m%n" />
  36. </layout>
  37. </appender>
  38.  
  39. <!-- 输出到调试信息文件 -->
  40. <appender name="LogDebugAppender" type="log4net.Appender.FileAppender">
  41. <param name="File" value="debug.txt" />
  42. <param name="AppendToFile" value="true" />
  43. <param name="MaxSizeRollBackups" value="" />
  44. <!-- 备份日志数目 -->
  45. <param name="MaxFileSize" value="" />
  46. <!-- 日志文件大小10M -->
  47. <param name="StaticLogFileName" value="false" />
  48. <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
  49. <param name="RollingStyle" value="Date" />
  50. <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
  51. <layout type="log4net.Layout.PatternLayout">
  52. <param name="ConversionPattern" value="%n调试时间:%d%n调试内容:%m%n" />
  53. </layout>
  54. </appender>
  55.  
  56. <!-- 输出到一般信息文件 -->
  57. <appender name="LogInfoAppender" type="log4net.Appender.FileAppender">
  58. <param name="File" value="info.txt" />
  59. <param name="AppendToFile" value="true" />
  60. <param name="MaxSizeRollBackups" value="" />
  61. <!-- 备份日志数目 -->
  62. <param name="MaxFileSize" value="" />
  63. <!-- 日志文件大小10M -->
  64. <param name="StaticLogFileName" value="false" />
  65. <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
  66. <param name="RollingStyle" value="Date" />
  67. <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
  68. <layout type="log4net.Layout.PatternLayout">
  69. <param name="ConversionPattern" value="%n调试时间:%d%n输出内容:%m%n" />
  70. </layout>
  71. </appender>
  72. </log4net>
  73. </configuration>

LogHelper.cs 类:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Web.UI.WebControls;
  6.  
  7. namespace Common
  8. {
  9. public class LogHelper
  10. {
  11. private static readonly log4net.ILog log_err = log4net.LogManager.GetLogger("logerror");
  12. private static readonly log4net.ILog log_debug = log4net.LogManager.GetLogger("logdebug");
  13. private static readonly log4net.ILog log_info = log4net.LogManager.GetLogger("loginfo");
  14.  
  15. /// <summary>
  16. /// 错误信息记录
  17. /// </summary>
  18. /// <param name="description">简单描述</param>
  19. /// <param name="ex">错误信息</param>
  20. public static void LogError(string description, Exception ex)
  21. {
  22. if (log_err.IsErrorEnabled) log_err.Error(description, ex);
  23. }
  24.  
  25. public static void LogError(object message)
  26. {
  27. if (log_err.IsErrorEnabled) log_err.Error(message);
  28. }
  29.  
  30. /// <summary>
  31. /// 调试信息记录
  32. /// </summary>
  33. /// <param name="message">调试信息</param>
  34. public static void LogDebug(object message)
  35. {
  36. if (log_debug.IsDebugEnabled) log_debug.Debug(message);
  37. }
  38.  
  39. public static void LogDebug(object message, Exception ex)
  40. {
  41. if (log_debug.IsDebugEnabled) log_debug.Debug(message, ex);
  42. }
  43.  
  44. /// <summary>
  45. /// 一般信息记录
  46. /// </summary>
  47. /// <param name="message">一般信息</param>
  48. public static void LogInfo(object message)
  49. {
  50. if (log_info.IsInfoEnabled) log_info.Info(message);
  51. }
  52.  
  53. public static void LogInfo(object message, Exception ex)
  54. {
  55. if (log_info.IsInfoEnabled) log_info.Info(message, ex);
  56. }
  57. }
  58. }

(原创)Log4Net 在多层项目中的使用小记的更多相关文章

  1. (转载)Log4Net 在多层项目中的使用小记

    (原创)Log4Net 在多层项目中的使用小记 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各 ...

  2. Log4Net 在多层项目中的使用小记

    原文地址:http://www.cnblogs.com/zdh8675/p/3645556.html 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用 ...

  3. 在 .Net 项目中生成Report小记

    背景 项目为WinForm + WCF 的应用,按照给定格式生成Report,显示在WinForm窗体上并可以导出为PDF和Excel文件. 分析 之前用过DevExpress For WinForm ...

  4. asp.net Web项目中使用Log4Net进行错误日志记录

      使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...

  5. C# 在项目中配置Log4net

    我们介绍一下在项目中配置log4net,是Apache基金会旗下的. 无论在什么环境中,配置log4net的逻辑都一样. 1)文件配置 首先在项目加载文件中,配置log4net加载项. 在Web项目中 ...

  6. 在类库项目中使用log4net(RollingFileAppender)记录日志

    1.创建解决方案 2.创建类库项目 3.根据需要修改命名空间,修改(和/或)添加类到类库 4.引用log4net 5.类库项目根目录下创建leg4net配置文件,如D3CallTriggerPlugi ...

  7. log4net.dll配置以及在项目中应用 zt

    1 首先在项目中引用log4net.dll,然后项目中添加一个配置文件log4net.config <?xml version="1.0" encoding="ut ...

  8. 浅谈Log4net在项目中如何记录日志

    一    引入背景 在软件开发周期中,无论是开发中,或是测试中,或是上线后,选择合适的工具监控程序的运行状态至关重要,只有如此,才能更好地排查程序问题和检测程序性能问题等.本篇文章主要与大家分享,如何 ...

  9. VS2010中NET4项目中使用LOG4NET办法

    两年以前项目中是用的log4net.dll是net2.0环境下面的,最近在官网http://logging.apache.org/log4net/download_log4net.cgi找到了net4 ...

随机推荐

  1. 「小程序JAVA实战」小程序上传短视频(46)

    转自:https://idig8.com/2018/09/14/xiaochengxujavashizhanxiaochengxushangchuanduanshipin45/ 个人信息:用户上传短视 ...

  2. **__new__和__init__

    这个__new__之前在写单例模式的时候用到过,下面做个深入了解吧. __new__是一个静态方法,而__init__是一个实例方法. __new__方法会返回一个创建的实例,而__init__什么都 ...

  3. ajax传递给后台数组参数方式

    出自:http://blog.csdn.net/lingxyd_0/article/details/10428785 在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用 ...

  4. Git(四):Git远程操作详解

    转: http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...

  5. centos7+tomcat部署JavaWeb项目超详细步骤

    我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过linux系统的人而言是比较有困难的,而且至今使用云服务器也是有成本的,很多时候我们可以通过虚拟机自己搭建 ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  7. Centos7安装jekyll

    1.首先需要安装相应的依赖包及所需要的工具 sudo yum install nodejs npm ruby ruby-devel rubygems git 2.修改gem源 国内 使用的淘宝的更新源 ...

  8. JAVA heap space 内存溢出

    3月28日开始使用JAVA调用SAP RFC后提示内存溢出 尝试增加set java_OPTS.....但仍然提示内存溢出 最终设置方法

  9. 接口自动化 Windows + HttpRunner 初探(一)

    运行环境 HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS.Linux.Windows 系统平台上. HttpRunner 的开发环境为 macOS + Pyth ...

  10. linux系统如何安装vmware Tools(下面以CentOS为例)

    VMwareTools是VMware虚拟机中很重要的一个工具包,有些时候在虚拟机中安装完操作系统会缺少网卡驱动,不能上网,这时只要安装VMwareTools就可以解决问题,下面以CentOS为例,来说 ...