C#使用log4net打日志

作者:王梦杰. 时间:2022-11-08 17:50:57 

首先打开vs,右击解决方案,点击管理解决方案的Nuget包管理

C#使用log4net打日志

然后我们点击浏览,搜索log4net,进行安装

C#使用log4net打日志

然后我们需要新建一个名为log4net.config的配置文件,在配置文件中,加入以下代码

C#使用log4net打日志

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--错误日志-->
//
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<file value="log\\LogError\\" />
<!--是否支持分割文件-->
<appendToFile value="true" />
<!--日志文件的记录形式-->
<rollingStyle value="Date" />
<!-- 日志文件的命名规则 -->
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
<staticLogFileName value="false" />
<!--当日志文件达到MaxFileSize大小,就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!--日志文件的布局格式-->
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n错误描述:%message%newline %n" />
</layout>
</appender>

<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n日志描述:%message%newline %n" />
</layout>
</appender>

<!--监控日志-->
<appender name="MonitorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogMonitor\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n跟踪描述:%message%newline %n" />
</layout>
</appender>

<!--Error日志-->
<logger name="LogError">
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</logger>

<!--Info日志-->
<logger name="LogInfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>

<!--监控日志-->
<logger name="LogMonitor">
<level value="Monitor" />
<appender-ref ref="MonitorAppender" />
</logger>
</log4net>

更改配置文件的"复制到输出目录"这个属性为"始终复制"

C#使用log4net打日志

 接下来我们找到AssemblyInfo.cs这个类,在这个类中加入一行代码

C#使用log4net打日志

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

 然后在我们项目文件下新建一个名为LoggerHelper的类,代码如下

public class LoggerHelper
   {
       private static readonly log4net.ILog LogInfo = log4net.LogManager.GetLogger("LogInfo");

private static readonly log4net.ILog LogError = log4net.LogManager.GetLogger("LogError");

private static readonly log4net.ILog LogMonitor = log4net.LogManager.GetLogger("LogMonitor");

/// <summary>
       /// 记录Error日志
       /// </summary>
       /// <param name="errorMsg"></param>
       /// <param name="ex"></param>
       public static void Error(string errorMsg, Exception ex = null)
       {
           if (ex != null)
           {
               LogError.Error(errorMsg, ex);
           }
           else
           {
               LogError.Error(errorMsg);
           }
       }

/// <summary>
       /// 记录Info日志
       /// </summary>
       /// <param name="msg"></param>
       /// <param name="ex"></param>
       public static void Info(string msg, Exception ex = null)
       {
           if (ex != null)
           {
               LogInfo.Info(msg, ex);
           }
           else
           {
               LogInfo.Info(msg);
           }
       }

/// <summary>
       /// 记录Monitor日志
       /// </summary>
       /// <param name="msg"></param>
       public static void Monitor(string msg)
       {
           LogMonitor.Info(msg);
       }
   }

 接下来我们直接在需要打日志的地方调用LoggerHelper类中的方法就可以了

C#使用log4net打日志

来源:https://blog.csdn.net/wmj20001225/article/details/123147535

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

猜你喜欢

  • Android中Webview打开网页的同时发送HTTP头信息方法

    2022-05-19 20:01:28
  • BeanUtils.copyProperties使用总结以及注意事项说明

    2023-06-27 18:06:18
  • 基于SSM框架+Javamail发送邮件的代码实例

    2022-04-28 11:59:04
  • 一篇文章带你了解JAVA结构化编程详情

    2022-01-15 13:06:34
  • 解决idea 项目编译后没有class文件的问题

    2023-11-04 07:55:06
  • Kotlin 基础教程之类、对象、接口

    2022-03-12 04:22:15
  • C#中datagridview的EditingControlShowing事件用法实例

    2021-05-27 23:08:43
  • Android实现上拉加载更多以及下拉刷新功能(ListView)

    2022-03-02 15:50:41
  • Qt实现计算器功能

    2022-07-29 06:30:55
  • Android Bluetooth蓝牙技术使用流程详解

    2022-07-07 02:41:16
  • 深入了解Java核心类库--Math类

    2023-08-19 01:06:21
  • java中Path和ClassPath用法比较

    2022-03-15 03:41:26
  • Android中使用GridView实现仿微信图片上传功能(附源代码)

    2023-11-27 02:01:25
  • springboot项目启动的时候参数无效的解决

    2022-09-03 14:50:29
  • C#巧用DateTime预设可选的日期范围(如本年度、本季度、本月等)

    2022-09-19 11:06:41
  • Java多线程通信wait()和notify()代码实例

    2022-09-27 12:12:11
  • Java操作hdfs文件系统过程

    2023-12-13 23:42:32
  • Java实现人机猜拳游戏

    2023-10-16 08:47:56
  • Java中的Object类用法总结

    2023-06-06 11:48:36
  • java上乘武功入门--反射

    2021-06-08 21:32:27
  • asp之家 软件编程 m.aspxhome.com