一、作用

提供一个记录日志的框架,可以将日志信息记录到文件、控制台、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,添加注释等等等

C#-Winform之log4net使用详细记录相关推荐

  1. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  2. 实操教程|详细记录solov2的ncnn实现和优化

    作者丨欧阳慧宇@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/361900997 编辑丨极市平台 极市导读 由于目前solo系列在GitHub中没有转ncnn的项目, ...

  3. OpenFOAM安装+ParaView安装+环境配置(deb直接安装详细记录-Ubuntu14.04+OpenFOAM4.1)

    OpenFOAM安装+ParaView安装+环境配置 Ubuntu14.04+OpenFOAM4.1(deb直接安装详细记录) Ubuntu14.04安装配置OpenFOAM4.1:https://w ...

  4. oracle19c的版本号_Windows10安装Oracle19c数据库详细记录(图文详解)

    1. 下载资源 官网下载地址: 点此进入 直接点击下载,会自动开始下载. 2. 开始安装 将下载的安装包解压到本地,右键-以管理员身份运行setup.exe,开始安装(一定要以管理员身份运行,不然后面 ...

  5. oracle19c二次安装报错,Windows10安装Oracle19c数据库详细记录(图文详解)

    这篇文章主要介绍了Windows10安装Oracle19c数据库详细记录,文中给大家介绍了修改密码的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以 ...

  6. 详细记录一次npm i canvas报错的解决过程

    npm i canvas 报错信息 $ npm i canvas> canvas@1.6.13 install /Users/jayson/Documents/workspace/xuebang ...

  7. <Linux开发>--驱动开发-- 字符设备驱动(3) 过程详细记录

    <Linux开发>–驱动开发-- 字符设备驱动(3) 过程详细记录 驱动开发是建立再系统之上的,前面作者也记录了系统移植的过程记录,如果有兴趣,可进入博主的主页查看相关文章,这里就不添加链 ...

  8. mysql模糊查找英文可以查找中文不行(详细记录)

    mysql模糊查找英文可以查找中文不行,这个问题我找了好久都没有一个符合我情况的详细描述,所以我把我自己的情况详细记录以供大家参考 问题描述如下: 1.查找条件为中文时,查找结果值为空: 2.英文可以 ...

  9. Html转义字符表详细记录

    Html转义字符表详细记录 特殊字符 字符 十进制 转义字符 " " " & & & < < < > > > ...

最新文章

  1. 如何使用sed在文件中确定行插入带有变量的字符串
  2. wxWidgets:wxShowEvent类用法
  3. Android之XUtils的框架总结
  4. python笔记全_Python笔记
  5. java中手动装入新类到类装饰器_关于java:抽象装饰器类中的功能而不是装饰器...
  6. matlab中ncread读取nc文件其中一个三维参数的其中一维_Matlab使用技巧总结-1
  7. USB接口类型的区别
  8. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第4节 maven生命周期和概念模型图_08maven生命周期...
  9. rust go对比选择
  10. 很认真的聊一聊程序员的自我修养
  11. ARM架构下常用GNU汇编程序伪指令介绍(Assembler Directive)
  12. iWatch开发的真机调试适配攻略
  13. Markdown的使用(富文本编辑)
  14. 【LiteOS】小白进阶之系统移植配置解析
  15. 网络RTK无人机上机测试
  16. python xlwings在Linux上报错XlwingsError:Your platform only supports the instantiation via xw.Book
  17. n个评委给m个选手打分python_n个评委为m个选手打分(n个评委打分总次数mn)。请问如何评判m个选手的成绩?...
  18. latch:cache buffers chains
  19. Python编写一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
  20. arcgis 生成矢量等值面

热门文章

  1. 【文末送18本ChatGPT扫盲书】从一路高歌到遭多国“封杀”,ChatGPT未来将是什么样子?
  2. 运用思科模拟器组建对等网
  3. taobao.refund.get( 获取单笔退款详情 )
  4. MySQL体系架构图
  5. 设计的工程化,来自Codesigner程序员X设计师的分享
  6. 硕士毕业半年的茫茫社招路
  7. Web服务器的配置(详细图文教程)
  8. 在EXCEL 2010里画斜线(斜线表头)
  9. java从指定文件中删除字符串,java删除指定目录中的文件或文件夹
  10. 刘浩运7.20单链表作业