1.引用log4net.dll

2.在AssemblyInfo.cs中添加初始化:

[assembly: log4net.Config.XmlConfigurator(ConfigFile
= "log4net.config", Watch = true)]

3.添加配置文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /></configSections><log4net><root></root><logger name="OneCardRequest"><level value="INFO" /><appender-ref ref="rollingRequestFile" /></logger><logger name="OneCardResult"><level value="INFO" /><appender-ref ref="rollingResultFile" /></logger><logger name="OneCardException"><level value="ERROR" /><appender-ref ref="rollingExceptionFile" /></logger><logger name="InfoLog"><level value="ALL" /><appender-ref ref="rollingInfoFile" /></logger><appender name="rollingRequestFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Request/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingResultFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Result/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingExceptionFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Exception/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingInfoFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Info/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender></log4net></configuration>

4.添加Log4netHelper类:

    public class log4netHelper
{/// <summary>/// 追加一条一卡通处理异常日志信息/// </summary>/// <param name="id">请求ID</param>/// <param name="ex">异常</param>/// <param name="attachMessage">附加信息</param>        public static void Exception(string id, Exception ex, string attachMessage)
{
log4net.ILog log = log4net.LogManager.GetLogger("OneCardException");if (log.IsErrorEnabled)
{string strMessage = string.Format("RequestID:{0}\r\nMesssage:{1}\r\nStackTrace:{2}\r\nAttachMessage:{3}", id, ex.Message, ex.StackTrace, attachMessage);
log.Error(strMessage);
}
log = null;
}/// <summary>/// 追加一条一卡通请求日志信息/// </summary>/// <param name="id">请求ID</param>/// <param name="ip">请求的IP地址</param>/// <param name="datetime">时间</param>/// <param name="strParam">请求时传入的参数</param>        public static void RequestLog(string id, string ip, string datetime, string strParam)
{
log4net.ILog log = log4net.LogManager.GetLogger("OneCardRequest");if (log.IsInfoEnabled)
{string strMessage = string.Format("RequestID:{0}\r\nIP:{1}\r\nDateTime:{2}\r\nParam:{3}", id, ip, datetime, strParam);
log.Info(strMessage);
}
log = null;
}/// <summary>/// 追加一条一卡通处理结果日志/// </summary>/// <param name="id">请求ID</param>/// <param name="datetime">时间</param>/// <param name="strResult">处理结果</param>        public static void ResultLog(string id, string datetime, string strResult)
{
log4net.ILog log = log4net.LogManager.GetLogger("OneCardResult");if (log.IsInfoEnabled)
{string strMessage = string.Format("RequestID:{0}\r\nDateTime:{1}\r\nParam:{2}", id, datetime, strResult);
log.Info(strMessage);
}
log = null;
}/// <summary>/// 追加一条普通的日志信息/// </summary>/// <param name="message">日志内容</param>        public static void Info(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
}

}本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2011/04/27/2030424.html,如需转载请自行联系原作者

log4net用法实例相关推荐

  1. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  2. php中 datalist,html5 datalist标签的用法是什么?这里有datalist标签的用法实例

    本篇文章主要为大家讲述了关于html5 datalist标签的用法及html5 datalist标签的用法实例.本文说了两个常用的选项框的实例供大家选择观看,下面就让我们一起来看这篇文章吧 我们先来看 ...

  3. python的for语句用法_python中list循环语句用法实例

    本文实例讲述了python中list循环语句用法.分享给大家供大家参考.具体用法分析如下: Python 的强大特性之一就是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个 ...

  4. CStopWatch计时器的用法实例

    CStopWatch计时器的用法实例 创建CStopWatch对象: CStopWatch m_runningtimeWatch; //定义一个计时器 定义一个装返回值的变量: double m_ru ...

  5. Go语言MD5加密用法实例

    Go语言MD5加密用法实例 本文实例讲述了Go语言MD5加密用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import (     "crypto/md5" ...

  6. python mysqldb cursor_python中MySQLdb模块用法实例

    转载自:http://www.jb51.net/article/57290.htm 姓名:梅金波                        学号:16010110036 [嵌牛导读]MySQLdb ...

  7. input type=range标签用法实例代码

    在HTML5中,又新增许多新<input>控件类型,比较实用的一个就是<input type="range">,以滑竿的方式来调整value值,在这以前需要 ...

  8. Union all的用法实例sql

    ---Union all的用法实例sql SELECT TOP (100) PERCENT ID, bid_user_id, UserName, amount, createtime, borrowT ...

  9. cube、rollup及exec的用法实例

    为什么80%的码农都做不了架构师?>>>    cube.rollup及exec的用法实例 select sdept 系部,sno 学号,max(sage) 最大年龄,   grou ...

最新文章

  1. SpringBoot 获取 application.properties 文件中的内容方法 【学习记录】
  2. 阿里软件测试工程师手把手教学——如何更好地设计测试用例?
  3. DCF模型里面的括号计算方法
  4. MySQL5.7.17绿色版安装
  5. LeetCode 991. 坏了的计算器(逆向思考)
  6. Eclipse 取消 Import 堆叠
  7. 信息的哲学--从信息到数据存储,再到数据保护
  8. pl/sql 过程分页显示小案例
  9. qq透明图像问题#13
  10. 【pytorch图像分类】ResNet网络结构
  11. 只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
  12. 利用css画三角箭头图标
  13. 笔记:基于freeradius 3.0的wifi认证
  14. 拼多多开店如何维护好粉丝?海昇智给你支招
  15. bi java lajp 和php_新宠混血儿诞生记--Java+PHP整合
  16. Android左右滑动切换图片
  17. tensorflow笔记 tf.metrics.accuracy
  18. NLPer福利-中文语言理解基准测【CLUEbenchmark】
  19. Project Management
  20. 男程序员写代码的样子 VS 女程序员写代码的样子

热门文章

  1. ELK-filbeate收集tomcat日志
  2. windows 命令行中 「ftp」「sftp」命令的使用
  3. 使用Eclipse查看反编译后的代码(Decompiler 插件)
  4. ajax 将输入框内容清空_Robot Framework清空输入框文本内容
  5. SpringMVC接收json数据转对象中的一些问题(415错误的解决)
  6. QT中ui更改后不能更新的解决方法
  7. Git:代码冲突常见解决方法
  8. uni.startPullDownRefresh 只能执行一次的解决方案
  9. 解决Winform应用程序中窗体背景闪烁的问题
  10. ant design table column 设置width不生效解决方案