关于log4net的详细使用教程
1、下载log4net并添加引用或通过NuGet安装程序包
2、配置文件中添加配置
在配置文件web.config或App.config中的Configuration节点下增加以下配置
<configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><log4net><appender name="Console" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><!-- Pattern to output the caller's file name and line number --><conversionPattern value="%5level [%thread] (%file:%line) - %message%newline"/></layout></appender><!--定义输出到文件中--><appender name="RollingFile" type="log4net.Appender.RollingFileAppender"><!--定义文件存放位置--><file value="App_Log\\log"/><!--是否追加到文件--><appendToFile value="true"/><!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全--><lockingModel type="log4net.Appender.FileAppender+MinimalLock"/><!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--><maxSizeRollBackups value="-1"/><!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--><rollingStyle value="Composite"/><datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/><!--是否只写到一个文件中--><staticLogFileName value="false"/><!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志--><maximumFileSize value="100MB"/><!--计数类型为1,2,3…--><param name="CountDirection" value="1"/><layout type="log4net.Layout.PatternLayout"><!--输出格式-样例:记录时间:2022-08-24 17:59:31,172 线程ID:[4] 日志级别:INFO 出错类:Log4NetDemo.MainClass 属性:[UserName:John] 日志描述:创建连接失败。--><conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level %n出错类:%logger 属性:[UserName:%property{UserName}] %n日志描述:%message%newline %n"/></layout></appender><root><!--日志等级:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL--><level value="ALL"/><!--<appender-ref ref="Console"/>--><appender-ref ref="RollingFile"/></root></log4net>
3、编写日志写入帮助类
注意,在命名空间上方要加代码:[assembly: log4net.Config.XmlConfigurator(Watch = true)],才能正确读取配置文件中的内容。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Demo.Helper
{/// <summary>/// 日志帮助类/// </summary>public class LogHelper{#region 输出日志到Log4Net/// <summary>/// 输出日志到Log4Net/// </summary>/// <param name="t"></param>/// <param name="ex">异常对象</param>/// <param name="level">日志等级,默认为:1 Debug 级</param>public static void WriteLog(Type t, Exception ex, LogLevel level = LogLevel.DEBUG){WriteLog(t, ex.Message, level);}#endregion#region 输出日志到Log4Net/// <summary>/// 输出日志到Log4Net/// </summary>/// <param name="t"></param>/// <param name="msg">错误信息</param>/// <param name="level">日志等级,默认为:1 Debug 级</param>public static void WriteLog(Type t, string msg, LogLevel level = LogLevel.DEBUG){// 对应日志信息中的“%property{UserName}”//log4net.ThreadContext.Properties["UserName"] = "Test";log4net.ILog log = log4net.LogManager.GetLogger(t);switch (level){// 日志等级:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALLcase LogLevel.DEBUG:log.Debug(msg);break;case LogLevel.INFO:log.Info(msg);break;case LogLevel.WARN:log.Warn(msg);break;case LogLevel.ERROR:log.Error(msg);break;case LogLevel.FATAL:log.Fatal(msg);break;default:log.Debug(msg);break;}}#endregion}/// <summary>/// 日志等级:/// OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL/// </summary>public enum LogLevel{/// <summary>/// ALL/// </summary>ALL = 0,/// <summary>/// DEBUG/// </summary>DEBUG = 1,/// <summary>/// INFO/// </summary>INFO = 2,/// <summary>/// WARN/// </summary>WARN = 3,/// <summary>/// ERROR/// </summary>ERROR = 4,/// <summary>/// FATAL/// </summary>FATAL = 5,/// <summary>/// OFF/// </summary>OFF = 6}
}
4、通过日志帮助类调用方法写入日志信息
using System;namespace Demo
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>static void Main(){LogHelper.WriteLog(typeof(Demo), "输出日志信息。", LogLevel.INFO);}}
}
5、日志样式
记录时间:2022-08-24 17:58:48,881 线程ID:[4] 日志级别:INFO
出错类:Demo 属性:[UserName:John]
日志描述:监听启动中...记录时间:2022-08-24 17:58:48,912 线程ID:[4] 日志级别:DEBUG
出错类:Demo 属性:[UserName:John]
日志描述:创建连接。记录时间:2022-08-24 17:59:10,167 线程ID:[4] 日志级别:ERROR
出错类:Demo 属性:[UserName:John]
日志描述:连接失败。
关于log4net的详细使用教程相关推荐
- mysql为什么每天0点就装东西_MySQL的详细安装教程
1.安装之前需要注意的几点 建议不要安装最新版本,一般找mysql5.0系列版本即可: mysq1官网有.zip和.msi两种安装形式: zip是压缩包,直接解压缩以后使用的,需要自己配置各种东西:m ...
- mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...
今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...
- python安装了运行不了_python详细安装教程
本章开始,我们将详细介绍Python编程环境的搭建,工欲善其事必先利其器,所以我们这里先介绍python详细安装教程.由于Python是跨平台的,他可以运行在Windows.Linux.Mac等系统上 ...
- truffle详细使用教程
详细使用教程 选择以太坊客户端 编译智能合约 运行迁移 测试智能合约 用 JavaScript 编写测试脚本 编写 Solidity 测试脚本 与智能合约交互 使用 EthPM 包管理工具 调试智能合 ...
- Apache的详细安装教程和遇到的问题解决方案
Apache的详细安装教程和遇到的问题解决方案 参考文章: (1)Apache的详细安装教程和遇到的问题解决方案 (2)https://www.cnblogs.com/jave1ove/p/54864 ...
- centos7 查看ip_VMware安装CentOS 7操作系统详细操作教程(网络配置)
网络配置,输入vi /etc/sysconfig/network-scripts/,按下Tab键,根据提示,输入ifcfg-eno16777736,按下Enter键,如下图所示: 图 1 网络配置-1 ...
- htc one m7刷Linux,HTC one m7官方刷机详细操作教程
由于很多软件功能都需要手机进行刷机,所以入手HTC one m7新机的用户一定想着如何刷机.下面就来教你HTC one m7官方刷机的详细操作教程! 准备事项: 1.手机必须能用usb数据线电脑,因为 ...
- apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程
Apache+PHP+MySQL+phpMyAdmin超详细配置教程 安装之前需要下载 Apache2.0.59 PHP4.4.4Win32 MySQL4.12 phpMyAdmin2.9.1.1rc ...
- python详细教程-python入门(非常详细的教程)
对于初学者而言,您要做的只是专注于Python语言,阐明学习重点,掌握学习节奏,并逐步学习.根据我多年的学习和工作经验,编程语言的学习分为以下三个步骤,无论您是否具有编程基础,都可以通过比较来完成. ...
最新文章
- 使用GIF(仅限Delphi2007)
- 《繁凡的论文精读》(一)CVPR 2019 基于决策的高效人脸识别黑盒对抗攻击(清华朱军)
- Spring AOP本质(7)
- Strtus2工作流程及原理
- 利用CSS边框合并属性打造table细边框
- 牛客小白月赛——G题
- PO、VO、BO、POJO、DAO、DTO都是什么对象
- 测试ai模糊软件,“马赛克”视频能被AI软件彻底还原?测试结果出乎意料!
- 汽车总线LIN总线协议
- [原创]把vscode的快捷键json配置批量导入微信小程序开发工具
- 如何在 CSS 中将表格居中?
- win7电脑怎么提升开机速度
- flash存储器原理及作用是什么?
- SHA-512 逻辑
- RT-Thread源码-__rt_ffs函数剖析
- OCR财务报表识别方案应用
- 如何写新产品开发报告书
- 使用async批量获取博客链接
- 使用Dockerfile创建openoffice镜像
- 金融业数字化转型全面提速背后 看华为如何与时俱进