C#-Winform之log4net使用详细记录

article/2025/9/29 16:45:40

一、作用

提供一个记录日志的框架,可以将日志信息记录到文件、控制台、Windows事件日志和数据库(MSSQL、Acess、Oracle、DB2和SQLite等)。
二、操作步骤
1.在项目中添加对log4net.dll的引用(通过NuGet可以直接安装)
在这里插入图片描述
在这里插入图片描述
2.在工程目录下找到App.config文件,用记事本将其打开
在这里插入图片描述
将以下代码将其替换

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><!--Add Log4Net Section--><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><log4net><appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="LOG/system.log"/><param name="AppendToFile" value="true"/><rollingStyle value="Size"/><maxSizeRollBackups value="10"/><maximumFileSize value="10MB"/><staticLogFileName value="true"/><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%n%date 【%p】 %message"/></layout></appender><logger name="LogTrace"><level value="ALL"/><appender-ref ref="LogFileAppender"/></logger></log4net><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup>
</configuration>

在vs中选择App.config属性,将其复制到输出目录改为如果较新则复制
在这里插入图片描述
3.添加CS文件,CS文件中代码如下

在这里插入图片描述

using log4net;[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = false)]//文件里添加下面代码,让程序启动时是找到Log4net.config配置文件
namespace ScaipMDAS
{public static class LogHelper{static readonly ILog _logger = LogManager.GetLogger("LogTrace");public static void Info(string message){_logger.Info(message);                               //打印事件}public static void Debug(string message){_logger.Debug(message);                             //调试}public static void Warn(string message){_logger.Warn(message);                              //警告}public static void Error(string message){_logger.Error(message);                             //错误}}
}

4.在窗体界面中添加按钮,并给他赋予点击事件,其中点击事件的代码如下:

   private void button1_Click(object sender, EventArgs e){LogHelper.Info("日志打印");LogHelper.Debug("日志调试");LogHelper.Error("日志错误");LogHelper.Warn("日志警告");}

5.运行,并点击按钮,你会发现在项目的debug文件夹下出现LOG文件夹
在这里插入图片描述
如果没有出现,修改配置文件中的语句即可:将你创建的CS文件中第三行语句改变。
在这里插入图片描述
为什么出现这种情况呢:

XmlConfigurator可配置三个属性:
ConfigFile:配置文件的路径及文件名,包括扩展名,文件相对于程序的根目录。注意:这个属性不能和 ConfigFileExtension 属性同时使用。
ConfigFileExtension:配置文件的后缀名,缺省的文件扩展名为”config”。这个属性不能和 ConfigFile 属性同时使用。
Watch (Boolean属性): 如果为true,log4net框架在运行时监视文件。如果配置文件修改被修改了,将会重新读取。
XmlConfigurator 配置例子:假设程序名称为TestApp
// 配置 log4net 使用 .config 后缀文件
// log4net将会在程序根目录查找配置文件 TestApp.exe.config
// 文件 TestApp.exe.config 被log4net监视是否被修改,
//如果修改了TestApp.exe.config文件, log4net自动重新加载
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
// 配置 log4net 使用 .log4net 后缀文件
// log4net将会在程序根目录查找配置文件 TestApp.exe.log4net
// 文件 TestApp.exe.log4net 被log4net监视是否被修改,
//如果修改了TestApp.exe.config文件, log4net自动重新加载
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension=“log4net”,Watch=true)]
3 app.config 中的 appSettings 配置
key 为 log4net.Config 的setting 会覆盖 assembly XmlConfigurator 配置 中 ConfigFile 指定的值

key 为 log4net.Config.Watch 的setting 会覆盖 assembly XmlConfigurator 配置 中 Watch 指定的值

// 有 assembly 配置
[assembly: log4net.Config.XmlConfigurator(Watch=false)]
//上面的assemble配置使使用配置文件 “TestApp.exe.config”,并且不监视。

//下面的配置覆盖assemble配置,使用配置文件 log4net.config, 并且监视该文件
// appSettings 配置





配置错误的解释链接: https://developer.aliyun.com/article/61899

这时再运行就会成功了,点击LOG文件夹中的文件,查看日志记录
在这里插入图片描述
可以根据你项目的程序,进行添加日志打印的记录了

自己还可以尝试添加地址,添加IP,添加注释等等等


http://chatgpt.dhexx.cn/article/tTUE671W.shtml

相关文章

log4net在linux中不生成日志,log4net使用记录

1、在程序中引用log4net.dll 2、添加-新建配置文件Log4Net.config&#xff0c;并在文件属性中“复制到输出目录”选中“始终复制”&#xff0c;文件内容如下&#xff1a; 3、在AssemblyInfo.cs中添加代码&#xff0c;用于调用Log4Net.config&#xff1a; [assembly: log4net.Co…

log4net在.Net Core使用

log4net的使用&#xff0c;可以把日志信息输出到各种不同终端&#xff08;文本文件、数据库、windows日志等&#xff09;&#xff0c;实现过程主要是各种输出方式的配置文件怎样配置&#xff1a; 1.安装log4net包 如果需要输出到数据库&#xff0c;相应的引入包 注意&#xf…

C#log4net的使用教程

1.我们在工具层使用NuGet添加log4net引用包 2.添加LogHelper帮助类 public class LogHelper{private static ILog _lognet LogManager.GetLogger(typeof(LogHelper));public static void WriterErrorLog(string logMessage) {_lognet.Error(logMessage);}public static void W…

C# log4net日志库的简单使用

C# log4net日志库的简单使用 一、简述 记--log4net日志开源库的简单使用&#xff1a;控制日志文件大小&#xff0c;日志文件个数&#xff0c;滚动式覆盖&#xff0c;自由控制日志打印等级 例子打包&#xff1a;外链:https://wwa.lanzoui.com/b0c9qvfqf 密码:67y7 二、下载log…

关于log4net的详细使用教程

1、下载log4net并添加引用或通过NuGet安装程序包 2、配置文件中添加配置 在配置文件web.config或App.config中的Configuration节点下增加以下配置 <configSections><section name"log4net" type"log4net.Config.Log4NetConfigurationSectionHandler, …

.Net使用log4net

1.使用Nuget下载log4net 2.、新建Config文件夹&#xff0c;将log4net配置文件放入此文件夹中&#xff08;当修改web.config的时候会重启网站&#xff0c;所以把log4net单独出来比较好&#xff0c;也好管理&#xff09;&#xff0c;log4net配置&#xff1a; <?xml version…

Log4Net 使用方法

第一步&#xff1a;安装nuget log4net包 第二步&#xff1a;新建log4net.config配置文件&#xff0c;配置日志输出格式 <?xml version"1.0"?> <configuration><configSections><section name"log4net" type"log4net.Config.L…

完整Log4Net配置信息,详细注释

<?xml version"1.0" encoding"utf-8" ?> <configuration><configSections><section name"log4net" type"log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"/></configSections>&l…

Log4Net 详解

1.Log4Net环境的搭建与基本配置 (1)Log4Net框架介绍 Log4net 是 Apache 下一个开放源码的项目&#xff0c;它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。它可以根据需要将日志输出到控制台&#xff0c;文本文件&#xff…

第一节:框架前期准备篇之Log4Net日志详解

一. Log4Net简介 Log4net是从Java中的Log4j迁移过来的一个.Net版的开源日志框架&#xff0c;它的功能很强大&#xff0c;可以将日志分为不同的等级&#xff0c;以不同的格式输出到不同的存储介质中&#xff0c;比如&#xff1a;数据库、txt文件、内存缓冲区、邮件、控制台、ANS…

Log4net详细教程

Log4net详细教程 一、Log4net概述log4net主要几个方法&#xff1a; 二、配置教程1、配置文件详解2、程序配置文件3、日志帮助类的编写 一、Log4net概述 log4net 是从 java 下有卓越表现的 log4j 移植过来的&#xff0c;是一个能够将日志信息输出到各种 不同目标的.net 类库&am…

Log4Net详解

Log4Net详解 零、文章目录 一、Log4Net详解 1、功能概述 &#xff08;1&#xff09;概述 Log4net库是.Net下一个非常优秀的开源日志记录组件&#xff0c;是一个帮助程序员将日志信息输出到各种目标&#xff08;控制台、文件、数据库等&#xff09;的工具。如果应用程序出现…

C#【必备技能篇】log4net的使用

使用log4net大致分以下几步&#xff1a; 1.安装 log4net&#xff0c;通过 Nuget 下载&#xff08;或者有log4net.dll的话&#xff0c;直接引用即可&#xff09; 2.新建 log4net.config 配置文件 <?xml version"1.0" encoding"utf-8" ?> <con…

Oracle存储过程的简单举例

一、建立测试数据 --建立测试数据: create table person(编号 number(10),姓名 varchar2(20),密码 varchar2(20));insert into person values(1,xzw,888);select * from person; 查询结果如下&#xff1a; 二、建立存储过程 --建立存储过程: create or replace procedure qu…

Mysql 存储过程案例教程

关注微信公共号&#xff1a;小程在线 关注CSDN博客&#xff1a;程志伟的博客 一、无参数无返回值存储过程 DELIMITER表示自定义结束符号&#xff0c;SQL一般默认&#xff1b;为结束符号 红色部分为固定格式 下面的查询语句&#xff0c;可以改成任意复杂的SQL语句 DELIMITE…

Oracle存储过程入门教程(通俗理解存储过程)

Oracle存储过程入门通俗介绍 一、118个真实应用场景的Oracle存储过程案例及开发指南二、存储过程通俗理解三、创建存储过程基本语法(汇总)四、执行存储过程的方式&#xff08;5种&#xff09;五、网上现有的创建存储过程的两种方式解释&#xff08;看注释&#xff09;六、一些存…

MySQL存储过程示例

实例1&#xff1a; 为了演示MySQL中的存储过程&#xff0c;我们先创建一些表和数据&#xff1a; drop table if exists my_test_table; create table my_test_table (id integer primary key not null AUTO_INCREMENT,name varchar(20),age integer,point double ); insert int…

mysql 存储过程详解

前言 在项目开发中&#xff0c;经常会遇到这样一种场景&#xff0c;当修改A表的一条数据时&#xff0c;需要关联修改B表、C表甚至其他更多表的数据&#xff0c;为什么会这样呢&#xff1f; 在真实的业务场景中&#xff0c;往往一张表的数据关联的业务是多样的&#xff0c;举例…

mysql存储过程call_mysql call 存储过程

PHP调用MYSQL存储过程实例 PHP调用MYSQL存储过程实例 标签&#xff1a; mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一&#xff1a;无参的存储过程$conn mysql_connect(localhost,root,root) o... 文章 thinkyoung 2016-01-20 544浏览量 存…

ORACLE存储过程

oracle存储过程 目录 oracle存储过程 一.什么是存储过程 二.为什么要写存储过程 三.存储过程基础 1.存储过程结构 2.存储过程语法 3.pl/sql处理存储过程 4.案例实战 四.存储过程进阶 1.BUIK COLLECT 2.FORALL 3.pl/sql调试存储过程 4.案例实战 附.参考资料 一.什…