架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 62653|回复: 6

[资料] c# log4net日志配置详解

[复制链接]
发表于 2016-6-16 14:54:18 | 显示全部楼层 |阅读模式
  log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本、数据库、windows日志、邮件、内存缓冲区等目标。

别的不说,先引用dll,这部,我就不说了,下面是loghelp:

  1. /// <summary>
  2.     /// 日志帮助类
  3.     /// </summary>
  4.     public class LogHelper
  5.     {

  6.         public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
  7.         public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

  8.         public static void SetConfig()
  9.         {
  10.             log4net.Config.XmlConfigurator.Configure();
  11.         }

  12.         public static void SetConfig(FileInfo configFile)
  13.         {
  14.             log4net.Config.XmlConfigurator.Configure(configFile);
  15.         }
  16.         /// <summary>
  17.         /// 普通的文件记录日志
  18.         /// </summary>
  19.         /// <param name="info"></param>
  20.         private static void Write(string info)
  21.         {
  22.             if (loginfo.IsInfoEnabled)
  23.             {
  24.                 loginfo.Info(info);
  25.             }
  26.         }
  27.         /// <summary>
  28.         /// 错误日志
  29.         /// </summary>
  30.         /// <param name="info"></param>
  31.         /// <param name="se"></param>
  32.         private static void Write(string info, Exception se)
  33.         {
  34.             if (logerror.IsErrorEnabled)
  35.             {
  36.                 logerror.Error(info, se);
  37.             }
  38.         }
  39.         /// <summary>
  40.         /// 写日志
  41.         /// </summary>
  42.         /// <param name="info">日志提示信息</param>
  43.         /// <param name="ex">
  44.         /// 异常信息
  45.         /// 写普通日志时可以不用传递
  46.         /// 写异常日志时传递异常信息
  47.         /// </param>
  48.         public static void WriteLog(string info, Exception ex = null)
  49.         {
  50.             try
  51.             {
  52.                 if (ex == null)
  53.                 {
  54.                     Write(info);
  55.                 }
  56.                 else
  57.                 {
  58.                     Write(info, ex);
  59.                 }
  60.             }
  61.             catch
  62.             {
  63.             }
  64.         }
  65.     }
复制代码



log4net.config文件配置:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3.   <configSections>
  4.     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  5.   </configSections>
  6.   <log4net>
  7.     <logger name="logerror">
  8.       <level value="ALL" />
  9.       <appender-ref ref="ErrorAppender" />
  10.     </logger>
  11.     <logger name="loginfo">
  12.       <level value="ALL" />
  13.       <appender-ref ref="InfoAppender" />
  14.     </logger>
  15.     <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
  16.       <param name="File" value="./App_Log\Error\ErrorLog.log" />
  17.       <param name="AppendToFile" value="true" />
  18.       <param name="MaxSizeRollBackups" value="100" />
  19.       <param name="MaximumFileSize" value="1MB" />
  20.       <param name="RollingStyle" value="Size" />
  21.       <param name="StaticLogFileName" value="true" />
  22.       <layout type="log4net.Layout.PatternLayout">
  23.         <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
  24.       </layout>
  25.     </appender>
  26.     <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
  27.       <param name="File" value="./App_Log\Info\InfoLog.log" />
  28.       <param name="AppendToFile" value="true" />
  29.       <param name="MaxSizeRollBackups" value="100" />
  30.       <param name="MaximumFileSize" value="1MB" />
  31.       <param name="RollingStyle" value="Size" />
  32.       <param name="StaticLogFileName" value="true" />
  33.       <layout type="log4net.Layout.PatternLayout">
  34.         <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
  35.       </layout>
  36.     </appender>
  37.   </log4net>
  38. </configuration>
复制代码



项目中的AssemblyInfo.cs文件的最后一行中添加:

  1. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
复制代码



main函数入口点添加:

  1. //自动配置基于应用程序的配置设置log4net系统
  2.             XmlConfigurator.Configure();
复制代码


最后日志输出:

INFO  2016-06-16 14:43:54,983 [loginfo] Add pushmessage exception
INFO  2016-06-16 14:45:32,449 [loginfo] Add pushmessage exception


log4net.config (1.76 KB, 下载次数: 13)




上一篇:Cannot insert the value NULL into column 'ID', table 'XX'; column does not al...
下一篇:解决System进程占用80端口的问题
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-6-16 15:13:18 | 显示全部楼层
  1. LogHelper.WriteLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "." + this.GetType().Name + "." + System.Reflection.MethodInfo.GetCurrentMethod().Name);
  2.             
复制代码


获取当前命名控件+类名+当前方法名
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-10-19 09:56:31 | 显示全部楼层
web配置log4Net日志



protected void Application_Start()
里面,还要加上



码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-2-4 10:17:44 | 显示全部楼层
.net/c# log4net数据库配置写日志[附源码]
http://www.itsvse.com/thread-3478-1-1.html
(出处: 架构师)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-4-11 15:41:41 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-7-9 01:38:52 | 显示全部楼层
简单一套配置方案



码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-11-19 14:42:19 | 显示全部楼层
看一下学习一下
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-6-20 16:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表