首页 > 编程语言 >C# Log4net使用

C# Log4net使用

时间:2024-12-10 22:31:55浏览次数:6  
标签:Log4net ThreadException log C# private Application static CurrentDomain 使用

1.在项目中安装log4net 包

 2.增加配置文件:

 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="run">
 8             <appender-ref ref="MessageAppender" />
 9         </logger>
10         <appender name="MessageAppender" type="log4net.Appender.RollingFileAppender">
11             <param name="Encoding" value="utf-8" />
12             <file value=".\logs\RunLog\" />
13             <appendToFile value="true" />
14             <maxSizeRollBackups value="24" />
15             <maximumFileSize value="100MB" />
16             <rollingStyle velue="Date" />
17             <datePattern value="yyyy-MM-dd-HH&quot;.txt&quot;" />
18             <staticLogFileName value="false" />
19             <layout type="log4net.Layout.PatternLayout">
20                 <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss fff}$%-5level%message%newline" />
21             </layout>
22         </appender>
23         <logger name="error_record">
24             <appender-ref ref="ErrorRecordAppender" />
25         </logger>
26         <appender name="ErrorRecordAppender" type="log4net.Appender.RollingFileAppender">
27             <param name="Encoding" value="utf-8" />
28             <file value=".\logs\ErrorRecord\" />
29             <appendToFile value="true" />
30             <maxSizeRollBackups value="24" />
31             <maximumFileSize value="500MB" />
32             <rollingStyle velue="Date" />
33             <datePattern value="yyyy-MM-dd-HH&quot;.txt&quot;" />
34             <staticLogFileName value="false" />
35             <layout type="log4net.Layout.PatternLayout">
36                 <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss};%message%newline" />
37             </layout>
38         </appender>
39         <logger name="operation">
40             <appender-ref ref="OperationAppender" />
41         </logger>
42         <appender name="OperationAppender" type="log4net.Appender.RollingFileAppender">
43             <param name="Encoding" value="utf-8" />
44             <file value=".\logs\OperationLog\" />
45             <appendToFile value="true" />
46             <maxSizeRollBackups value="24" />
47             <maximumFileSize value="100MB" />
48             <rollingStyle velue="Date" />
49             <datePattern value="yyyy-MM-dd&quot;.txt&quot;" />
50             <staticLogFileName value="false" />
51             <layout type="log4net.Layout.PatternLayout">
52                 <conversionPattern value="%date{HH:mm:ss fff}$%-5level$%message$%newline" />
53             </layout>
54         </appender>
55         <logger name="webapi">
56             <appender-ref ref="webAppender" />
57         </logger>
58         <appender name="webAppender" type="log4net.Appender.RollingFileAppender">
59             <param name="Encoding" value="utf-8" />
60             <file value=".\logs\WebApi\" />
61             <appendToFile value="true" />
62             <maxSizeRollBackups value="24" />
63             <maximumFileSize value="100MB" />
64             <rollingStyle velue="Date" />
65             <datePattern value="yyyy-MM-dd&quot;.txt&quot;" />
66             <staticLogFileName value="false" />
67             <layout type="log4net.Layout.PatternLayout">
68                 <conversionPattern value="%date{HH:mm:ss fff}$%-5level$%message$%newline" />
69             </layout>
70         </appender>
71     </log4net>
72 </configuration>

3.将该配置文件设置为【始终复制】:

 4.在程序中启动入口加载:

 

 1   private static readonly ILog log = LogManager.GetLogger("run");
 2   /// <summary>
 3   /// 应用程序的主入口点。
 4   /// </summary>
 5   [STAThread]
 6   static void Main()
 7   {
 8       var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4Net.config");
 9       XmlConfigurator.Configure(new FileInfo(path));
10       Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
11       Application.ThreadException += Application_ThreadException;
12       AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
13       Application.EnableVisualStyles();
14       Application.SetCompatibleTextRenderingDefault(false); 
15       Application.Run(new HELLERMonitor1());
16   }
17 
18   private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
19   {
20       log.Error(e);
21   }
22 
23   private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
24   {
25       log.Error(e);
26   }

5.在项目中根据日志分类调用输出:

1    private static readonly ILog log = LogManager.GetLogger("run");
2    public Form1()
3    {
4        InitializeComponent();
5        log.Debug("程序运行中。。。");
6    }

6.查看运行结果:

 

标签:Log4net,ThreadException,log,C#,private,Application,static,CurrentDomain,使用
From: https://www.cnblogs.com/kitthe/p/18598141

相关文章

  • MCU如何使用fopen fread fwrite fclose等函数?
    目录MCU如何使用fopenfreadfwritefclose等函数?1读写文件改为读写数组2文件操作函数2.1fopen()2.2fclose()2.3fread()2.4fwrite()2.5fgetc()2.6fgets()2.7fputc()2.8fputs()2.9fseek()2.10ftell()2.11rewind()2.12feof()2.13fprintf()2.14fscanf()3单元测试MC......
  • 使用 Hutool 在 Java 中生成验证码
    文章目录详细步骤1.安装JDK和IDE2.创建Maven项目3.添加Hutool依赖4.编写验证码生成代码5.运行代码6.查看结果详细步骤1.安装JDK和IDE安装JDK访问OracleJDK或OpenJDK网站下载适合你操作系统的JDK版本。按照安装向导完成安装,并配置环境......
  • C# 在Windform程序中搭建Webapi
    1.在NuGet引用owinMicrosoft.AspNet.WebApi.OwinMicrosoft.AspNet.WebApi.OwinSelfHostMicrosoft.Owin.StaticFiles2.添加服务启动配置类 Startup1usingWebapiTest.App_Start;2usingMicrosoft.Owin.FileSystems;3usingMicrosoft.Owin.StaticFiles;4usingO......
  • spring-boot-starter-tomcat 的依赖项
    以下是SpringBoot1.4.3.RELEASE版本中 spring-boot-starter-tomcat 的依赖项及其功能描述:ArtifactIdPurposetomcat-embed-core提供嵌入式Tomcat的核心功能,使应用程序能够通过嵌入式Tomcat运行。tomcat-embed-el提供嵌入式Tomcat的表达式语言(EL)支持,用于解......
  • Google Kickstart2022 Round H Problem B 魔法百合井
    很好的一道dp题传送门思考通过几次尝试,你会发现贪心貌似不可用贪心的思路,只统计目前已有的百合花,然后相加,你会发现,会留下一定数量的百合花,小于统计值,只能一个一个加,反而导致总硬币更多尝试dp怎么得到答案设f[x]是得到x朵花的最小硬币数我们先不考虑f[x]怎么得到考虑怎......
  • UIViewController的view在有navBar和tabBar影响下布局区域的问题
    转自:https://www.cnblogs.com/bridge-wuxl/p/10790888.html影响View布局区域的有以下三个属性:self.edgesForExtendedLayout(影响View布局区域的主要属性)self.navigationController.navigationBar.translucent(navigationBar是否半透明)self.tabBarController.tabBa......
  • 【NVIDIA orin nx 安装ultralytics yolov11】
    注意:不同用户安装的python可能会在不同的路径,因此不同的pip管理会导致安装的torch和torchvision会在不同的路径下记得区分用户来运行yolo一、确认系统JetPack版本此处使用5.1.11、查看JetPack版本jtop二、安装ultralytics、pytorch、torchvision、onnxruntime-......
  • spring-boot-dependencies的依赖项
    以下是SpringBoot1.4.3.RELEASE版本中spring-boot-dependencies的依赖项及其功能描述,按artifact名称排序:ArtifactNamePurposeactivemq开放源代码消息代理,实现Java消息服务(JMS)规范。antlr2用于构建语言识别器、编译器和翻译器的工具。appengine提供Googl......
  • ABAP开发-批量导入BAPI和BDC_1
    系列文章目录文章目录系列文章目录@[TOC](文章目录)前言一、概念二、BDC和BAPI数据导入1、BDC数据导入(录屏)2、BAPI数据导入三、实例1、BAPI2、BDC总结前言一、概念SAP中,对一个事务码反复操作并且达到批量处理数据的效果,即批量导入,重复操作一类数据,从而用程序模......
  • Autodesk.Revit.DB ReferenceIntersector
    Autodesk.Revit.DBReferenceIntersector用于查找和返回与从原点和方向创建的射线相交的元素的类。语法publicclassReferenceIntersector:IDisposable附注可以构造此类的实例,以返回与由原点和方向创建的射线,或者基于过滤和标志返回元素的子集。调用者可以选择使用Eleme......