Log4

web.config

  1. <!--这段放前面-->
  2. <configSections>
  3. <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  4. </configSections>
  5.  
  6. <log4net debug="true">
  7. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  8. <file value="Log\LogDataList\\"/>
  9. <!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)-->
  10. <appendToFile value="true"/>
  11. <rollingStyle value="Date"/>
  12. <datePattern value="yyyy-MM-dd/&quot;log.log&quot;"/>
  13. <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock"/>
  14. <maxSizeRollBackups value="1000"/>
  15. <!--备份log文件的个数最多10个-->
  16. <maximumFileSize value="5MB"/>
  17. <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->
  18. <staticLogFileName value="false"/>
  19. <layout type="log4net.Layout.PatternLayout">
  20. <!--指定log的格式 [%M] 方法名称 -->
  21. <conversionPattern value="-----------------------------------------------------------------------------%newline[日期:%d] %newline 日志级别:%-5level, 发生在类:%c[%M] 、%L行,%newline 描述:%m %newline"/>
  22. </layout>
  23. </appender>
  24. <root>
  25. <!--<level value="DUBEG" />-->
  26. <!--指定将此级别及以上的log打印到log文件中-->
  27. <appender-ref ref="RollingLogFileAppender"/>
  28. </root>
  29. </log4net>
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7.  
  8. namespace WebApplication1
  9. {
  10. public partial class _Default : System.Web.UI.Page
  11. {
  12. protected void Page_Load(object sender, EventArgs e)
  13. {
  14. string CurrIP = "";
  15. try
  16. {
  17.  
  18. CurrIP = System.Web.HttpContext.Current.Request.UserHostAddress;
  19. int i = int.Parse("tt");
  20. }
  21. catch (Exception ex)
  22. {
  23. //写入日志
  24. string msg = "消费发生异常请及时处理【BAL.PayConsume】:\n strNumber:\n strNumber:\n goodsNumber:结果rsult:\n ip:" + CurrIP + "\n 时间:" + DateTime.Now.ToString("yyyyMMdd-hhmmss");
  25. dalcomd.wLog(LogLevel.Error, msg, ex);
  26. }
  27. finally
  28. {
  29. //写入日志
  30. string msg = "消费记录【BAL.PayConsume】:\n strNumber:\n strNumber:\n goodsNumber:结果rsult:\n ip:" + CurrIP + "\n 时间:" + DateTime.Now.ToString("yyyyMMdd-hhmmss");
  31. dalcomd.wLog(LogLevel.Info, msg);
  32. }
  33. }
  34. }
  35. }
  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. using log4net;
  5. using System.IO;
  6.  
  7. [assembly: log4net.Config.XmlConfigurator(Watch = true)]
  8. namespace WebApplication1
  9. {
  10. public static class dalcomd
  11. {
  12.  
  13. /// <summary>
  14. /// 日志类
  15. /// </summary>
  16. private static ILog log
  17. {
  18. get
  19. {
  20. Type declaringType = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType;
  21. ILog log = log4net.LogManager.GetLogger(declaringType);
  22. return log;
  23. }
  24. }
  25.  
  26. /// <summary>
  27. /// 写入运行日志
  28. /// </summary>
  29. /// <param name="Errorlevel">日志级别</param>
  30. /// <param name="ErrorMsg">错误描述</param>
  31. /// <param name="ex">异常</param>
  32. /// <param name="age">参数列表</param>
  33. public static void wLog(LogLevel Errorlevel, string ErrorMsg, params string[] age)
  34. {
  35. wLog(Errorlevel, ErrorMsg, new Exception(), age);
  36. }
  37.  
  38. /// <summary>
  39. /// 写入运行日志
  40. /// </summary>
  41. /// <param name="Errorlevel">日志级别</param>
  42. /// <param name="ErrorMsg">错误描述</param>
  43. /// <param name="ex">异常</param>
  44. /// <param name="age">参数列表</param>
  45. public static void wLog(LogLevel Errorlevel, string ErrorMsg)
  46. {
  47. wLog(Errorlevel, ErrorMsg, new Exception());
  48. }
  49.  
  50. /// <summary>
  51. /// 写入运行日志
  52. /// </summary>
  53. /// <param name="Errorlevel">日志级别</param>
  54. /// <param name="ErrorMsg">错误描述</param>
  55. /// <param name="ex">异常</param>
  56. public static void wLog(LogLevel Errorlevel, string ErrorMsg, Exception ex)
  57. {
  58. ILog log = dalcomd.log;
  59. switch (Errorlevel)
  60. {
  61. case LogLevel.Debug: log.Debug(ErrorMsg, ex); break;
  62. case LogLevel.Info: log.Info(ErrorMsg, ex); break;
  63. case LogLevel.Warn: log.Warn(ErrorMsg, ex); break;
  64. case LogLevel.Error: log.Error(ErrorMsg, ex); break;
  65. case LogLevel.Fatal: log.Fatal(ErrorMsg, ex); break;
  66. }
  67. }
  68.  
  69. /// <summary>
  70. /// 写入运行日志
  71. /// </summary>
  72. /// <param name="Errorlevel">日志级别</param>
  73. /// <param name="ErrorMsg">错误描述</param>
  74. /// <param name="ex">异常</param>
  75. /// <param name="age">参数列表</param>
  76. public static void wLog(LogLevel Errorlevel, string ErrorMsg, Exception ex, params string[] age)
  77. {
  78. ILog log = dalcomd.log;
  79. StringBuilder SBParams = new StringBuilder();
  80. foreach (string str in age)
  81. {
  82. SBParams.Append(str + ",");
  83. }
  84. ErrorMsg = ErrorMsg + "\n{参数:[" + SBParams.ToString() + "]}";
  85. switch (Errorlevel)
  86. {
  87. case LogLevel.Debug: log.Debug(ErrorMsg, ex); break;
  88. case LogLevel.Info: log.Info(ErrorMsg, ex); break;
  89. case LogLevel.Warn: log.Warn(ErrorMsg, ex); break;
  90. case LogLevel.Error: log.Error(ErrorMsg, ex); break;
  91. case LogLevel.Fatal: log.Fatal(ErrorMsg, ex); break;
  92. }
  93. }
  94.  
  95. /// <summary>
  96. /// 自定义方法写入日志
  97. /// </summary>
  98. /// <param name="FilePath">路径</param>
  99. /// <param name="FileName">文件名</param>
  100. /// <param name="content">内容</param>
  101. public static void LogResult(string FilePath, string FileName, string content)
  102. {
  103. try
  104. {
  105. //目录
  106. string strFilePath = FilePath + "//" + DateTime.Now.ToString("yyyyMMdd");
  107. //完整文件地址
  108. string AllFilePath = strFilePath + "//" + FileName;
  109. if (!Directory.Exists(strFilePath))
  110. {
  111. Directory.CreateDirectory(strFilePath);
  112. }
  113.  
  114. StreamWriter write = new StreamWriter(AllFilePath, true, System.Text.Encoding.UTF8);
  115. write.Write(content);
  116. write.WriteLine();
  117. write.Close();
  118. write.Dispose();
  119. }
  120. catch (Exception ex)
  121. {
  122. string msg = FilePath + "------" + FileName + "-----" + content;
  123. wLog(LogLevel.Error, "自定义日志方写入异常:" + msg, ex);
  124. }
  125. }
  126.  
  127. }
  128. }
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace WebApplication1
  7. {
  8. /// <summary>
  9. /// LOG日志记录等级枚举
  10. /// </summary>
  11. public enum LogLevel
  12. {
  13. /// <summary>
  14. /// Debug信息记录 调试信息
  15. /// </summary>
  16. Debug = ,
  17.  
  18. /// <summary>
  19. /// Info信息记录 记录信息
  20. /// </summary>
  21. Info = ,
  22.  
  23. /// <summary>
  24. /// Warn信息记录 警告信息
  25. /// </summary>
  26. Warn = ,
  27.  
  28. /// <summary>
  29. /// Error信息记录 普通错误
  30. /// </summary>
  31. Error = ,
  32.  
  33. /// <summary>
  34. /// Fatal信息记录 致命错误
  35. /// </summary>
  36. Fatal =
  37. }
  38. }

DownLoad .dll File

.net错误日志记录(log4)的更多相关文章

  1. 将错误日志记录在txt文本里

    引言 对于已经部署的系统一旦出错对于我们开发人员来说是比较痛苦的事情,因为我们不能跟踪到错误信息,不能 很快的定位到我们的错误位置在哪,这时候如果能像开发环境一样记录一些堆栈信息就可以了,这时候我们就 ...

  2. PHP错误日志记录:display_errors与log_errors的区别

    我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...

  3. 日志记录~log4.net

    1. 添加Log4net引用 2. 添加配置文件 Log.config <?xml version="1.0" encoding="utf-8"?> ...

  4. .Net Core中间件和过滤器实现错误日志记录

    1.中间件的概念 ASP.NET Core的处理流程是一个管道,中间件是组装到应用程序管道中用来处理请求和响应的组件. 每个中间件可以: 选择是否将请求传递给管道中的下一个组件. 可以在调用管道中的下 ...

  5. 利用Image对象,建立Javascript前台错误日志记录

    手记:摘自Javascript高级程序设计(第三版),利用Image对象发送请求,确实有很多优点,有时候这也许就是一个创意点,再次做个笔记供自己和大家参考. 原文: 开发 Web 应用程序过程中的一种 ...

  6. wpf 全局异常捕捉+错误日志记录+自动创建桌面图标

    /// /// 创建桌面图标 /// public static void CreateShortcutOnDesktop(string LnkName) { String shortcutPath ...

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

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

  8. PHP错误日志记录文件位置确定

    1.确定web服务器 ( IIS, APACHE, NGINX 等) 以哪一种方式支持PHP,通常是有下面2种方式 通过模块加载的方式, 适用于apache 通过 CGI/fastCGI 模式, 该模 ...

  9. python错误日志记录工具,解决项目排错问题

    我们写项目的时候难免会遇到代码报错的问题,遇到这样的问题了如何快速的定位问题并解决问题呢? 我今天来整理了利用python只带的工具来解决这个问题,我能需要使用的库有: logging os 这些都是 ...

随机推荐

  1. Struts2 Ajax校验

    Ajax(Asynchronous javascript and xml):异步刷新技术 技术组成:  CSS + xml +JavaScript +DOM Ajax核心对象: XMLHttpRequ ...

  2. BestCoder Round #89 Fxx and string

    问题描述 青年理论计算机科学家Fxx得到了一个只包含小写字母的字符串. 字符串的长度为\:nn,下标从1开始,第\:i\:i位的字母为\:s_is​i​​,现在Fxx想知道有多少三元组\:(i,j,k ...

  3. Android的setVisibility(View.GONE)无效的问题及原因分析(转)

    出现这种情况很可能是因为设置了animation,并且调用了setFillAfter(true),这就会导致setVisibility无效,只需要调用一下clearAnimation()方法或者去掉s ...

  4. CPU使用率终于正常了——记一次订餐系统事故处理

    引子 经过漫长的等待,儿子终于出生了.欣喜之余,就是各种手足无措,顾此失彼了.因为不懂,心里总是慌慌的,有点小毛病,恨不得一步就到医院. 婆媳育儿观念的差异,让心乱如麻的我,又成了风箱里的老鼠,两个不 ...

  5. RedHat/Centos修改root密码

    Linux主机忘记密码,只要你能接触物理主机都可以修改root密码的!   Redhat6.x 5.x  / Centos6.x  5.x 01.开机-空格/enter 02.e-编辑模式 CentO ...

  6. .eww

    http://sourceforge.net/projects/ezwinports/files/ 下载libxml2的文件. 再下载的bin里复制libiconv-2.dll和libxml2-2.d ...

  7. Bioinformatics Glossary

    原文:http://homepages.ulb.ac.be/~dgonze/TEACHING/bioinfo_glossary.html Affine gap costs: A scoring sys ...

  8. String、StringBuilder 与 StringBuffer

    1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们 ...

  9. 【BZOJ-3195】奇怪的道路 状压DP (好题!)

    3195: [Jxoi2012]奇怪的道路 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 305  Solved: 184[Submit][Statu ...

  10. nginx中将POST数据写到日志里面的正确方式

    http://www.cnblogs.com/meteorx/p/3188647.html