<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!--日志配置部分-->
<log4net>
<root>
<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->
<!--如果没有定义LEVEL的值,则缺省为DEBUG-->
<!--<level value="ALL"/-->
<!--向日志文件输出日志信息-->
<appender-ref ref="RollingFileAppender"/>
<!--appender-ref ref="ConsoleAppender"/-->
<!--向控制台输出日志信息-->
</root>
<!--创建log名称可以在后续代码中使用-->
<logger name="appError">
<level value="ALL" />
<appender-ref ref="appErrorLog" />
</logger>
<logger name="Operation">
<level value="ALL"/>
<appender-ref ref="OperationLog" />
</logger>
<appender name="OperationLog" type="log4net.Appender.RollingFileAppender">
<!--日志文件名开头-->
<file value="Log/程序日志/"/>
<!--多线程时采用最小锁定-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
<DatePattern value="yyyy-MM-dd&quot;Linkto.log&quot;"/>
<!--是否追加到文件,默认为true,通常无需设置-->
<AppendToFile value="true"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<!--变换的形式为日期,这种情况下每天只有一个日志-->
<!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义-->
<RollingStyle value="Date"/>
<!--变换的形式为日志大小-->
<!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
<!--<RollingStyle value="Size"/>-->
<!--每天记录的日志文件个数,与maximumFileSize配合使用-->
<!--<MaxSizeRollBackups value="10"/>-->
<!--每个日志文件的最大大小-->
<!--可用的单位:KB|MB|GB-->
<!--不要使用小数,否则会一直写入当前日志-->
<maximumFileSize value="100MB"/>
<StaticLogFileName value="false"/>
<!--日志格式-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date[%t]%p: %m%n"/>
</layout>
</appender>
<appender name="appErrorLog" type="log4net.Appender.RollingFileAppender">
<!--日志文件名开头-->
<file value="Log/错误日志/"/>
<!--多线程时采用最小锁定-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
<DatePattern value="yyyy-MM-dd&quot;LinktoError.log&quot;"/>
<!--是否追加到文件,默认为true,通常无需设置-->
<AppendToFile value="true"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<!--变换的形式为日期,这种情况下每天只有一个日志-->
<!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义-->
<RollingStyle value="Date"/>
<!--变换的形式为日志大小-->
<!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
<!--<RollingStyle value="Size"/>-->
<!--每天记录的日志文件个数,与maximumFileSize配合使用-->
<!--<MaxSizeRollBackups value="10"/>-->
<!--每个日志文件的最大大小-->
<!--可用的单位:KB|MB|GB-->
<!--不要使用小数,否则会一直写入当前日志-->
<maximumFileSize value="100MB"/>
<StaticLogFileName value="false"/>
<!--日志格式-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date[%t]%p: %m%n"/>
</layout>
<!--指定过滤器-->
<!--<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>-->
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

1.配置log4Net的文件写入

2.在Assmblyinfo.cs中使用改配置信息

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; // 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("WindowsFormsLog4Net")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WindowsFormsLog4Net")]
[assembly: AssemblyCopyright("Copyright 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] //指定配置文件类型
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)] //配置log4net //指定配置文件
//[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] // 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("eb1a4b05-7a43-4f6a-81ec-3020b052a34d")] // 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

3.代码中使用

namespace WindowsFormsLog4Net
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
ILog m_log = LogManager.GetLogger("Operation");
m_log.Debug("这是一个Debug日志" + 2); ILog m_log2 = LogManager.GetLogger("appError");
m_log2.Debug("这是一个Debug日志" + 2);
m_log2.Info("这是一个Info日志"); }
}

4.输出结果

Log4Net使用示例的更多相关文章

  1. C# Log4Net使用示例

    using log4net; using log4net.Config; using System; using System.IO; namespace Three.Logging { /// &l ...

  2. log4net简单配置内容

    首先将log4net.dll下载来,添加到项目引用中: 在assembly文件最后面加(其实没关系的): [assembly: log4net.Config.XmlConfigurator(Confi ...

  3. 【记录】.net 通用log4net日志配置

    asp.net mvc 1.引入log4netNuGet包. 2.修改Global.asax下的Application_Start方法.加入log4net.Config.XmlConfigurator ...

  4. Log4net(二)-——关联配置文件的方式总结

    关联配置文件的方式总结 以控制台应用程序为例,在.net mvc项目中默认的配置位置为Web.config,其他的配置都一样 1.配置在AppConfig中 在控制台应用程序中,如果我们把Log4ne ...

  5. Log4net系列二:Log4net邮件日志以及授权码

    Log4net邮件发送 上篇文章我们主要介绍Log4net生成文本格式,本篇文章主要配置邮箱发送.关于项目的引用,搭建我们就不在描述,如果不太清楚,请看上篇文章, 老规矩,我们现在配置文件中添加一个a ...

  6. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  7. 实战项目:通过当当API将订单抓取到SAP(二)

    上一篇博客,我们引用了log4net 这个.这里简单介绍下,为什么引用这个. log4net是记录程序日志信息的,是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控 ...

  8. Topshelf 一个简化Windows服务开发的宿主服务框架

    Topshelf是 基于.net框架开发的宿主服务框架.该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务.之所以这样原因非常简单:调试一个控 ...

  9. log4net示例2-日志输入存入Access(转)

    需求:基于log4net组建,创建Console程序将日志输出到Access数据库. 具体实施: (1)创建控制台程序. (2)控制台程序中,添加一个纯文本文件,文件命名为“log-Access.se ...

  10. Log4Net日志的简单使用示例

    前言 源码参考示例地址 http://www.51aspx.com/Code/log4netusedemo/2707 本例博客园源码 https://files.cnblogs.com/files/m ...

随机推荐

  1. Flutter学习

    常用网址 免费下载 !<AliFlutter 体系化建设和实践> Flutter 开发文档 Flutter实战 Dart 编程语言概览 pub仓库 main函数使用了(=>)符号, ...

  2. 【MySQL】数据库设计(一)三大范式

    三大范式 1NF 第一范式 强调列的原子性,即列不可分 例如: 2NF 第二范式 前提是1NF,另外包含两个部分: 表必须具有一个主键: 没有包含在主键中的列必须完全依赖于主键,而不是只依赖主键的一部 ...

  3. kafka消费者的三种模式

    几种不同的注册方式 subscribe方式:当主题分区数量变化或者consumer数量变化时,会进行rebalance:注册rebalance监听器,可以手动管理offset不注册监听器,kafka自 ...

  4. Ubuntu上文件系统根目录磁盘空间扩充

    今天使用Ubuntu的时候,出现了磁盘根目录空间不足的提示,需要我们对于根目录磁盘空间进行扩充. 1.打开终端输入命令,安装gparted管理器 sudo apt-get install gparte ...

  5. RocketMQ(10) 消息类型

    一.普通消息 1. 消息发送方式分类 Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果. 同步发送消息: 同步发送消息是指,Producer发出⼀条消息后,会在收到MQ返 ...

  6. vmware虚拟机 CentOS出现连接被拒--ssh:connect to host localzly port 22: Connection refused

    一.问题现象: 错误提示如下:CentOS出现连接被拒--ssh:connect to host localzly (自己的主机名)port 22: Connection refused 二.问题原因 ...

  7. Springboot+POI实现excel生成下载进阶版(单元格合并,多Sheet,各种样式处理)

    上周五来了新的需求,基本上我写的还款那一系列流程不要了(我好悲伤,当时写了很久的,逻辑复杂的写的我很骄傲),新的变成如上所示(仅仅一部分),勾选几笔后生成一个excel表格,不同的融资编号所引发的那堆 ...

  8. MYSQL 主从不一致的原因分析

    数据库作为存储数据的组件,数据的一致性一定是要保证的前提,今天给出两个场景来分析数据不一致的原因. binlog同步模式导致主从不一致 在MYSQL 中主库向从库同步数据是利用binlog记录修改操作 ...

  9. 基于wifi的音频采集及处理解决方案小结

    一沉浮    这些年,一直围绕着音频来做案子,做出来的案子自己都数不清楚了.记得前几年,刚出道的时候,就把wifi音频传输的设备做出来了.可惜的是,当初太超前市场了,鲜有人问.随着时间的推移,在疫情之 ...

  10. 二进制文件分析工具-hexdump使用指南

    一 概念: hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII.八进制.十进制.十六进制 格式进行 查看. 二 用法简介: 该工具的用法十分简单,具体如下所示: ...