C#中四步轻松使用log4net记录本地日志的方法

 更新时间:2017年11月23日 09:34:15   作者:begrateful  
下面小编就为大家分享一篇C#中四步轻松使用log4net记录本地日志的方法,具有很好的参考价值。希望对大家有所帮助

在这里,记录我在项目中使用log4net记录本地日志的步骤。在不会之前感觉很难,很神秘,一旦会了之后其实没那么难。其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验。

第一步:首先从Visual Studio中的Nuget包管理中搜索下载 Log4Net dll文件 如下图:

选择安装的项目(哪个类库中需要记录日志就勾选上)

第二步:打开配置文件 WinFrom就是 App.config Web就是 web.config 将以下配置信息加入

<configSections>
 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
 <logger name="SysRFLogger">
 <level value="DEBUG" />
 <appender-ref ref="SysRFAppender" />
 </logger>
 <logger name="DebugRFLogger">
 <level value="DEBUG" />
 <appender-ref ref="DebugAppender" />
 </logger>
 <logger name="MsgLogger">
 <level value="DEBUG" />
 <appender-ref ref="MsgAppender" />
 </logger>
 <logger name="OperInfoLogger">
 <level value="DEBUG" />
 <appender-ref ref="OperInfoAppender" />
 </logger>
 <appender name="SysRFAppender" type="log4net.Appender.RollingFileAppender">
 <file value="Logs\syslog.log" />
 <appendToFile value="true" />
 <rollingStyle value="Date" />
 <preserveLogFileNameExtension value="true" />
 <datePattern value="yyyyMMdd" />
 <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
 </layout>
 </appender>
 <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
 <file value="Logs\sysDebuglog.log" />
 <appendToFile value="true" />
 <rollingStyle value="Date" />
 <preserveLogFileNameExtension value="true" />
 <datePattern value="yyyyMMdd" />
 <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
 </layout>
 </appender>
 <appender name="MsgAppender" type="log4net.Appender.RollingFileAppender">
 <file value="Logs\Messagelog.log" />
 <appendToFile value="true" />
 <rollingStyle value="Date" />
 <preserveLogFileNameExtension value="true" />
 <datePattern value="yyyyMMdd" />
 <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
 </layout>
 </appender>
 <appender name="OperInfoAppender" type="log4net.Appender.AdoNetAppender">
 <bufferSize value="1" />
 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.30319.18020, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 <commandText value="INSERT INTO LOG_USEROPERLOG ([ID],[Date],[User],[Flag],[OperInfo],[OperFlag],[OperResult],[Message]) VALUES (@Id,@log_date, @user, @flag, @operinfo,@operflag, @operresult, @message)" />
 <parameter>
  <parameterName value="@Id" />
  <dbType value="String" />
  <size value="36" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{ID}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@log_date" />
  <dbType value="DateTime" />
  <layout type="log4net.Layout.RawTimeStampLayout" />
 </parameter>
 <parameter>
  <parameterName value="@user" />
  <dbType value="String" />
  <size value="64" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{User}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@flag" />
  <dbType value="Int32" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{Flag}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@operinfo" />
  <dbType value="String" />
  <size value="255" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{OperInfo}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@operflag" />
  <dbType value="String" />
  <size value="32" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{OperFlag}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@operresult" />
  <dbType value="String" />
  <size value="255" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{OperResult}" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@message" />
  <dbType value="String" />
  <size value="4000" />
  <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log">
  <param name="ConversionPattern" value="%property{Message}" />
  </layout>
 </parameter>
 </appender>
 <root>
 <level value="DEBUG" />
 <appender-ref ref="SysRFAppender" />
 </root>
</log4net>

以上节点具体参数这里不做解释,可以上网查询帮助文档

注意:这两段XML要放在configuration 节点下靠前

第三步:打开项目AssemblyInfo.cs文件(UI层)

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

第四步:在需要记录日志的cs文件中初始化: private ILog _log = LogManager.GetLogger("TicketFace");

一般常用以下几个方法:

_log.Error();
_log.Debug();
_log.Info();

最后运行项目然后在以上配置文件中找到路径去文件夹里看看就生成了日志文件了。

注意:这里日志是以天为单位记录 如下:

以上这篇C#中四步轻松使用log4net记录本地日志的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Http上传与Ftp上传的区别详解

    Http上传与Ftp上传的区别详解

    本篇文章是对Http上传与Ftp上传的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#文件加密方法汇总

    C#文件加密方法汇总

    这篇文章主要介绍了C#文件加密方法,实例汇总了常见的加密方法如AES加密类、文件加密类、文件夹加密类等,最后给出完整的实例源码下载供大家参考借鉴,需要的朋友可以参考下
    2014-11-11
  • C#实现提取Word中插入的多媒体文件(视频,音频)

    C#实现提取Word中插入的多媒体文件(视频,音频)

    在Word中可将文件通过OLE对象嵌入的方式插入到文档,包括Word、excel、PDF、PPT、图片、宏文件、文件包等在内的多种文件类型。本文将利用C#实现提取插入在Word文件中的这些多媒体文件,感兴趣的可以了解一下
    2022-02-02
  • C#将数字转换成字节数组的方法

    C#将数字转换成字节数组的方法

    这篇文章主要介绍了C#将数字转换成字节数组的方法,涉及C#字符串操作的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#实现利用Linq操作Xml文件

    C#实现利用Linq操作Xml文件

    这篇文章主要为大家详细介绍了C#如何利用Linq实现操作Xml文件,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • Unity封装延时调用定时器

    Unity封装延时调用定时器

    这篇文章主要为大家详细介绍了Unity封装延时调用定时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C# HttpClient超时重试机制详解

    C# HttpClient超时重试机制详解

    超时重试的实现方式可以使用循环结构,在请求发起后等待一定时间,若超时未收到响应,则再次发起请求,循环次数可以根据实际情况进行设置,一般建议不超过三次,这篇文章主要介绍了C# HttpClient超时重试,需要的朋友可以参考下
    2023-06-06
  • C#中异步回调函数用法实例

    C#中异步回调函数用法实例

    这篇文章主要介绍了C#中异步回调函数用法,实例分析了异步回调函数的定义及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Unity制作游戏自定义按键详解

    Unity制作游戏自定义按键详解

    这篇文章主要介绍了在Unity中如何实现游戏自定义按键,文中的示例代码讲解详细,对我们学习Unity有一定帮助,感兴趣的可以跟随小编学习一下
    2022-01-01
  • C#中的let字句应用示例

    C#中的let字句应用示例

    这篇文章主要给大家介绍了C#中的let字句,文中通过应用实例介绍的很详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02

最新评论