C#中四步轻松使用log4net记录本地日志的方法
作者:begrateful 时间:2021-12-22 02:23:16
在这里,记录我在项目中使用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();
最后运行项目然后在以上配置文件中找到路径去文件夹里看看就生成了日志文件了。
注意:这里日志是以天为单位记录 如下:
来源:http://www.cnblogs.com/wendj/archive/2017/11/22/7880582.html
标签:C#,log4net,记录日志
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
在java代码中获取JVM参数的方法
2022-08-15 01:05:43
Mybatis参数传递示例代码
2023-05-20 09:43:08
Java框架设计灵魂之反射的示例详解
2023-06-13 21:34:34
解决bufferedReader.readLine()读到最后发生阻塞的问题
2022-07-15 06:05:38
Android去除AlertDialog的按钮栏的分隔线
2021-06-06 18:53:54
![](https://img.aspxhome.com/file/2023/9/94289_0s.png)
Spring Cache+Redis缓存数据的实现示例
2023-11-26 11:53:20
![](https://img.aspxhome.com/file/2023/0/60060_0s.png)
使用java springboot设计实现的图书管理系统(建议收藏)
2023-11-25 00:54:49
![](https://img.aspxhome.com/file/2023/8/59928_0s.jpg)
java查询mongodb中的objectid示例
2022-03-06 08:59:21
C# File类中的文件读写方法详解
2023-04-14 09:52:08
C#/VB.NET实现创建PDF/UA文件的示例代码
2023-05-02 23:31:51
![](https://img.aspxhome.com/file/2023/1/104321_0s.jpg)
深入理解Java8新特性之接口中的默认方法和静态方法
2023-11-24 01:44:25
![](https://img.aspxhome.com/file/2023/9/59759_0s.png)
Java运行环境搭建的图文教程
2021-06-22 07:44:41
![](https://img.aspxhome.com/file/2023/5/106165_0s.png)
C#中除去所有在HTML元素中标记
2023-04-14 04:09:56
java实现简单的扫雷小游戏
2022-09-14 19:23:24
![](https://img.aspxhome.com/file/2023/3/95953_0s.jpg)
Android实现歌词渐变色和进度的效果
2023-09-24 02:33:17
![](https://img.aspxhome.com/file/2023/8/91708_0s.png)
手把手教你SpringBoot快速集成Swagger的配置过程
2023-10-30 01:16:22
![](https://img.aspxhome.com/file/2023/5/58705_0s.png)
浅谈SpringBoot资源初始化加载的几种方式
2022-03-09 08:14:34
![](https://img.aspxhome.com/file/2023/3/80253_0s.jpg)
Java毕业设计实战之医院心理咨询问诊系统的实现
2022-07-04 19:02:21
![](https://img.aspxhome.com/file/2023/5/74995_0s.jpg)
使用Spring Boot AOP处理方法的入参和返回值
2022-03-02 07:25:41
![](https://img.aspxhome.com/file/2023/3/87363_0s.jpg)
解析spring cloud ouath2中的Eureka
2023-10-12 04:07:54
![](https://img.aspxhome.com/file/2023/6/61006_0s.png)