C# log4net日志库的简单使用

article/2025/9/29 16:48:03

                                             C# log4net日志库的简单使用

一、简述

       记--log4net日志开源库的简单使用:控制日志文件大小,日志文件个数,滚动式覆盖,自由控制日志打印等级

       例子打包:外链:https://wwa.lanzoui.com/b0c9qvfqf 密码:67y7

二、下载log4net

直接使用log4net源码或直接使用log4net源码编译对应的dll或直接使用log4net.dll

下载地址:http://logging.apache.org/log4net/download_log4net.html

例子直接使用其中4.5的dll。(请根据当前环境的.net framework框架版本进行选择,请看右键项目--》属性--》应用程序--》目标框架)

三、添加log4net.dll引用  

四、添加日志配置log.config  

 编辑log.config内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration><log4net><appender name="MyAppender1" type="log4net.Appender.RollingFileAppender"><file value="app.log" />  <!--日志文件名--><appendToFile value="true" /> <!--日志文件以追加方式进行--><rollingStyle value="Size" />   <!--按文件大小进行滚动记录,也可以按日期--><maxSizeRollBackups value="2" />  <!--最多两个日志备份,app.log.1 app.log.2--><maximumFileSize value="8KB" /> <!--日志文件达到8KB就重新记一个文件--><staticLogFileName value="true" /><layout type="log4net.Layout.PatternLayout"><!--每一行日志输出格式--><conversionPattern value="%date [%thread] (%file:%line) %-5level %logger - %message%newline" /></layout></appender><logger name="Mylog1">  <!--代码通过Mylog1获取对应的logger句柄--><level value="WARN" /> <!--比WARN等级低的不会输出 日志等级由高到低:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL--><appender-ref ref="MyAppender1" /> <!--启用MyAppender1--></logger></log4net>
</configuration>

 将配置同步更新到exe输出路径

 五、在AssemblyInfo.cs文件中添加log4net.dll相关参数

在AssemblyInfo.cs文件末尾添加一行(其中的log.config就是步骤四添加的配置文件)

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

六、测试例子 

6.1 测试代码 

namespace Log4netTest
{public partial class Form1 : Form{//Mylog1对应log.config种的一个logger名称public static readonly log4net.ILog mLogger = log4net.LogManager.GetLogger("Mylog1");public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){mLogger.Error("APP Start");mLogger.Debug("logDebug");mLogger.Info("logInfo");mLogger.Warn("logWarn");mLogger.Error("logError");mLogger.Error(this);}}

注:代码种的Mylog1对应log.config中的一个logger名称

6.2 效果

         控制日志文件大小,日志文件个数,滚动式覆盖,控制日志打印等级为WARN。

 七、附

7.1 更多日志配置:http://logging.apache.org/log4net/release/manual/configuration.html

 7.2 日志格式

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 
%n(new line):换行 
%d(datetime):输出当前语句运行的时刻 
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
%t(thread id):当前语句所在的线程ID 
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
%c(class):当前日志对象的名称,例如: 
%f(file):输出语句所在的文件名。 
%l(line):输出语句所在的行号。 
%数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充

7.3 日志配置

appender、logger标签可多个,不是一一对应关系的

 


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

相关文章

关于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.案例实战 附.参考资料 一.什…

Greenplum创建存储过程

1.美图 1.对比 greenplum 的plpgsql 注意: greenplum 的plpgsql 与 postgresql 不是完全兼容的。plpgsql 不明确界定 函数和存储过程&#xff0c;“returns void” 表示 存储过程&#xff0c;“return 数据类型” 表示 函数。greenplum中的函数分成3种类型: immutable(不可变…

Mysql 创建存储过程和函数及各种例子

Mysql 创建存储过程和函数及各种例子 1. Mysql 创建存储过程1.1 前言知识1.1.1 语法结构1.1.2 简单解释 1.2 创建存储过程入门例子1.2.1 无参存储过程1.2.1.1 不带变量1.2.1.2 带变量 1.2.2 有入参的存储过程1.2.3 有出参的存储过程1.2.4 有入参和存储的存储过程1.2.5 inout的存…

oracle 存储过程 实例 循环 给查询赋值 游标取值

CREATE OR REPLACE PROCEDURE p_updete_gs is --仅供参考 i_jdid varchar(32); i_ryid varchar(32); cursor cur is --游标 给查询赋值 select c.jdid jdid, t.ryid rybh from t_zcj_rctj t,t_zj_jd c where t.ryidc.rybh and t.bgzt<>3 and c.bgzt<>…

SQL存储过程实例详解

SQL存储过程实例详解 本文用3个题目&#xff0c;从建立数据库到创建存储过程&#xff0c;详细讲解数据库的功能。 题目1 学校图书馆借书信息管理系统建立三个表&#xff1a; 学生信息表&#xff1a;student 字段名称 数据类型 说明 stuID char(10) 学生编号&#xff0c;主…