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

作者:begrateful 时间:2021-12-22 02:23:16 

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

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

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

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

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

第二步:打开配置文件 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 节点下靠前

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

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

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

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

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

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

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

一般常用以下几个方法:

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

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

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

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

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

来源:http://www.cnblogs.com/wendj/archive/2017/11/22/7880582.html

标签:C#,log4net,记录日志
0
投稿

猜你喜欢

  • 手写redis@Cacheable注解 参数java对象作为key值详解

    2022-04-26 11:30:36
  • maven将项目打包上传到nexus私服的详细教程

    2023-04-18 16:20:22
  • springboot+jersey+tomcat实现跨域方式上传文件到服务器的方式

    2023-08-16 10:26:45
  • java web上传文件和下载文件代码片段分享

    2023-10-04 19:50:50
  • java虚拟机原理:Class字节码二进制文件分析

    2022-02-06 09:02:33
  • 基于Unity制作一个简易的计算器

    2023-02-18 10:02:39
  • 关于SpringBoot静态资源路径管理问题

    2022-12-04 03:51:29
  • Cocos2d-x 3.0多线程异步加载资源实例

    2022-02-08 03:26:51
  • 源码浅析Android中内存泄漏检测工具Leakcanary的使用

    2021-11-02 12:30:11
  • Java SpringBoot整合shiro-spring-boot-starterqi项目报错解决

    2022-11-07 03:27:02
  • SpringBoot集成cache缓存的实现

    2023-11-27 16:37:39
  • Android实现后台服务拍照功能

    2022-11-07 03:30:50
  • SpringBoot LocalDateTime格式转换方案详解(前端入参)

    2022-01-05 06:48:03
  • C# winfrom 模拟ftp文件管理实现代码

    2023-07-15 16:29:48
  • C#和Java有什么区别和联系

    2022-01-02 04:33:26
  • Android之FanLayout制作圆弧滑动效果

    2023-01-14 16:58:29
  • Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作

    2022-04-05 20:07:11
  • Android项目实战之ListView悬浮头部展现效果实现

    2022-08-11 16:35:32
  • 代理模式:JAVA静态代理和动态代理的实例和实现详解

    2023-06-05 02:19:27
  • SpringBoot接口如何统一异常处理

    2023-08-10 15:06:20
  • asp之家 软件编程 m.aspxhome.com