国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

.NET日志記錄框架Log4Net使用總結

2019-11-17 01:50:30
字體:
來源:轉載
供稿:網(wǎng)友

.NET日志記錄框架Log4Net使用總結

做項目,記錄日志是免不了的。在開發(fā)過程中還可以調(diào)試,但是在項目發(fā)布之后,不可能長期這么做,日志則能夠在最快的時間內(nèi)發(fā)現(xiàn)問題。最近,在好幾個項目中使用了Log4net,感覺確實給我省了不少力,總結一下使用吧,同時也留作以后備用。

1 使用Nuget安裝Log4Net:Install-Package log4net

QQ截圖20141031182038

QQ截圖20141031182104

2 創(chuàng)建LogHelper.cs

  1. usingSystem;
  2. namespaceUCsoft.Web.Common
  3. {
  4. ///<summary>
  5. ///Log4Net日志封裝類2014-08-2814:58:50By唐有煒
  6. ///</summary>
  7. publicclassLogHelper
  8. {
  9. ///<summary>
  10. ///信息標志
  11. ///</summary>
  12. ///<summary>
  13. ///錯誤標志
  14. ///</summary>
  15. privatestaticreadonlylog4net.ILoglogerror=log4net.LogManager.GetLogger("logerror");
  16. ///<summary>
  17. ///調(diào)試標志
  18. ///</summary>
  19. privatestaticreadonlylog4net.ILoglogdebug=log4net.LogManager.GetLogger("logdebug");
  20. ///<summary>
  21. ///Log4Net信息記錄封裝2014-08-2814:58:50By唐有煒
  22. ///</summary>
  23. ///<paramname="message"></param>
  24. ///<returns></returns>
  25. publicstaticvoidInfo(stringmessage)
  26. {
  27. if(loginfo.IsInfoEnabled)
  28. {
  29. loginfo.Info(message);
  30. }
  31. }
  32. ///<summary>
  33. ///Log4Net錯誤記錄封裝2014-08-2814:58:50By唐有煒
  34. ///</summary>
  35. ///<paramname="message"></param>
  36. ///<returns></returns>
  37. publicstaticvoidError(stringmessage)
  38. {
  39. if(logerror.IsErrorEnabled)
  40. {
  41. logerror.Error(message);
  42. }
  43. }
  44. ///<summary>
  45. ///Log4Net錯誤記錄封裝2014-08-2814:58:50By唐有煒
  46. ///</summary>
  47. ///<paramname="message"></param>
  48. ///<paramname="ex"></param>
  49. ///<returns></returns>
  50. publicstaticvoidError(stringmessage,Exceptionex)
  51. {
  52. if(logerror.IsErrorEnabled)
  53. {
  54. if(!string.IsNullOrEmpty(message)&&ex==null)
  55. {
  56. logerror.ErrorFormat("<br/>【附加信息】:{0}<br>",newobject[]{message});
  57. }
  58. elseif(!string.IsNullOrEmpty(message)&&ex!=null)
  59. {
  60. stringerrorMsg=BeautyErrorMsg(ex);
  61. logerror.ErrorFormat("<br/>【附加信息】:{0}<br>{1}",newobject[]{message,errorMsg});
  62. }
  63. elseif(string.IsNullOrEmpty(message)&&ex!=null)
  64. {
  65. stringerrorMsg=BeautyErrorMsg(ex);
  66. logerror.Error(errorMsg);
  67. }
  68. }
  69. }
  70. ///<summary>
  71. ///Log4Net調(diào)試記錄封裝2014-08-2814:58:50By唐有煒
  72. ///</summary>
  73. ///<paramname="message"></param>
  74. ///<returns></returns>
  75. publicstaticvoidDebug(stringmessage)
  76. {
  77. if(logdebug.IsErrorEnabled)
  78. {
  79. logdebug.Debug(message);
  80. }
  81. }
  82. ///<summary>
  83. ///Log4Net調(diào)試記錄封裝2014-08-2814:58:50By唐有煒
  84. ///</summary>
  85. ///<paramname="message"></param>
  86. ///<paramname="ex"></param>
  87. ///<returns></returns>
  88. publicstaticvoidDebug(stringmessage,Exceptionex)
  89. {
  90. if(logdebug.IsDebugEnabled)
  91. {
  92. if(!string.IsNullOrEmpty(message)&&ex==null)
  93. {
  94. logdebug.DebugFormat("<br/>【附加信息】:{0}<br>",newobject[]{message});
  95. }
  96. elseif(!string.IsNullOrEmpty(message)&&ex!=null)
  97. {
  98. stringerrorMsg=BeautyErrorMsg(ex);
  99. logdebug.DebugFormat("<br/>【附加信息】:{0}<br>{1}",newobject[]{message,errorMsg});
  100. }
  101. elseif(string.IsNullOrEmpty(message)&&ex!=null)
  102. {
  103. stringerrorMsg=BeautyErrorMsg(ex);
  104. logdebug.Debug(errorMsg);
  105. }
  106. }
  107. }
  108. ///<summary>
  109. ///美化錯誤信息
  110. ///</summary>
  111. ///<paramname="ex">異常</param>
  112. ///<returns>錯誤信息</returns>
  113. privatestaticstringBeautyErrorMsg(Exceptionex)
  114. {
  115. stringerrorMsg=string.Format("【異常類型】:{0}<br>【異常信息】:{1}<br>【堆棧調(diào)用】:{2}",
  116. newobject[]{ex.GetType().Name,ex.Message,ex.StackTrace});
  117. errorMsg=errorMsg.Replace("/r/n","<br>");
  118. errorMsg=errorMsg.Replace("位置","<strongstyle=/"color:red/">位置</strong><br/>");
  119. returnerrorMsg;
  120. }
  121. }
  122. }

3 在AssemblyInfo里面注冊(非常重要)

QQ截圖20141031182845QQ截圖20141031182858

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

4 創(chuàng)建log4net.config

  1. <log4net>
  2. <appendername="LogFileAppender"type="log4net.Appender.RollingFileAppender">
  3. <paramname="File"value="Log//"/>
  4. <!--輸出到什么目錄-->
  5. <paramname="AppendToFile"value="true"/>
  6. <!--是否覆寫到文件中-->
  7. <paramname="StaticLogFileName"value="false"/>
  8. <!--是否使用靜態(tài)文件名-->
  9. <paramname="DatePattern"value="yyyyMMdd&quot;.html&quot;"/>
  10. <!--日志文件名-->
  11. <paramname="RollingStyle"value="Date"/>
  12. <!--最小鎖定模型以允許多個進程可以寫入同一個文件-->
  13. <paramname="lockingModel"type="log4net.Appender.FileAppender+MinimalLock"/>
  14. <layouttype="log4net.Layout.PatternLayout">
  15. <paramname="ConversionPattern"value="&lt;HRCOLOR=green&gt;%n日志時間:%d[%t]&lt;BR&gt;%n日志級別:%-5p&lt;BR&gt;%n日志標志:%c&lt;BR&gt;%n日志信息:%m&lt;BR&gt;%n&lt;HRSize=1&gt;"/>
  16. </layout>
  17. <filtertype="log4net.Filter.LevelRangeFilter">
  18. <levelMinvalue="DEBUG"/>
  19. <levelMaxvalue="INFO"/>
  20. </filter>
  21. </appender>
  22. <appendername="ErrorFileAppender"type="log4net.Appender.RollingFileAppender">
  23. <paramname="File"value="Log//"/>
  24. <paramname="AppendToFile"value="true"/>
  25. <paramname="StaticLogFileName"value="false"/>
  26. <paramname="DatePattern"value="yyyyMMdd.error&quot;.html&quot;"/>
  27. <paramname="RollingStyle"value="Date"/>
  28. <!--最小鎖定模型以允許多個進程可以寫入同一個文件-->
  29. <paramname="lockingModel"type="log4net.Appender.FileAppender+
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 工布江达县| 沈丘县| 乐平市| 湖州市| 洮南市| 会昌县| 都江堰市| 黑河市| 崇文区| 应城市| 泽普县| 聂荣县| 东台市| 顺昌县| 桂林市| 屏山县| 金平| 彰化市| 高平市| 神木县| 延长县| 德安县| 吉木萨尔县| 奉贤区| 中宁县| 永春县| 南昌县| 甘谷县| 绥中县| 巨野县| 清新县| 江华| 天长市| 吉安市| 昌黎县| 嘉义市| 台山市| 乌鲁木齐县| 奇台县| 武邑县| 泰和县|