做网站注意哪些,wordpress跳转链接地址,微信管理系统在哪,找投资项目的网站一 引入背景在软件开发周期中#xff0c;无论是开发中#xff0c;或是测试中#xff0c;或是上线后#xff0c;选择合适的工具监控程序的运行状态至关重要#xff0c;只有如此#xff0c;才能更好地排查程序问题和检测程序性能问题等。本篇文章主要与大家分享#xf… 一 引入背景 在软件开发周期中无论是开发中或是测试中或是上线后选择合适的工具监控程序的运行状态至关重要只有如此才能更好地排查程序问题和检测程序性能问题等。本篇文章主要与大家分享如何利用Log4net在项目中记录日志文件。在应用程序出现问题时启用日志记录有助于解决问题。使用log4net可以在运行时启用日志记录而无需修改应用程序二进制文件。log4net是帮助程序员输出日志语句到各种输出目标的工具。log4net支持如下框架NET Standard 1.3 via .NET Core 1.0Microsoft® .NET Framework 1.0Microsoft .NET Framework 1.1Microsoft .NET Framework 2.0Microsoft .NET Framework 3.5Microsoft .NET Framework 4.0Microsoft .NET Framework 4.5Microsoft .NET Framework 3.5 Client ProfileMicrosoft .NET Framework 4.0 Client ProfileMicrosoft .NET Compact Framework 1.0Microsoft .NET Compact Framework 2.0Mono 1.0Mono 2.0Mono 3.5Mono 4.0Microsoft Shared Source CLI 1.0CLI 1.0 Compatible二 log4net概述一日志级别1.级别归纳2.级别比较(1)级别从低高排序:ALLDebugInfoWarnErrorFatalOFF(2)日志不能记录低于最低级别的记录如设置最低级别为Info,则低于Info的级别都不能记录code测试结果3.利用Filter过滤级别除此之外还能利用filter级别过滤来设置将不同级别记录到相应文件如将INFO级别信息记录到INFO文件中将Error级别信息记录到Error文件中。配置文件后台代码static void Main(string[] args) { //Log4net几种提错类型 //创建日志记录组件 ILog iLog log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); try { iLog.Debug(Debug, new Exception(Debug)); iLog.Info(Info, new Exception(Info)); iLog.Warn(Warn, new Exception(Warn)); iLog.Error(Error, new Exception(Error)); iLog.Fatal(Fatal, new Exception(Fatal)); } catch (Exception ex) { throw new Exception(ex.Message); } }测试结果二级别继承级别继承很简单归结为一句话若本事设置了级别则用自己的级别若没设置级别则继承离自己最近的级别。例子1例子2 例子3 例子4三日志输出形式1.输出文件形式归纳2.项目中常用的输出形式3.代码操作3.1.在Root中定义日志输出媒介root level valueALL / !--定义日志的输出媒介如下定义四种方式-- !--文件形式记录日志-- appender-ref refLogFileInfoAppender / !--appender-ref refLogFileErrorAppender /-- !--控制台显示日志-- appender-ref refConsoleAppender / !--Windows事件日志-- appender-ref refEventLogAppender / !--数据库日志-- appender-ref refAdoNetAppender_Oracle //root3.2.配置具体的媒介如下以文件形式为例!--定义输出到文件中-- appender nameLogFileInfoAppender typelog4net.Appender.FileAppender !--定义文件存放位置-- file valueE:/Log/log4netInfoLog.txt / appendToFile valuetrue / rollingStyle valueDate / datePattern valueyyyyMMdd-HH:mm:ss / !---定义布局模板-- layout typelog4net.Layout.PatternLayout !--每条日志末尾的文字说明-- footer valueby Alan_beijing / !--输出格式-- !--样例2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-- conversionPattern value记录时间%date;文件名%file;行号:%line;线程ID:[%thread];优先级:%priority;%newline 日志级别%-5level;运行时间:%r;出错类%logger property:[%property{NDC}];错误描述%message / /layout /appender3.3.后台代码class Program { static void Main(string[] args) { //Log4net几种提错类型 //创建日志记录组件 ILog iLog log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); try { iLog.Debug(Debug, new Exception(Debug)); iLog.Info(Info, new Exception(Info)); iLog.Warn(Warn, new Exception(Warn)); iLog.Error(Error, new Exception(Error)); iLog.Fatal(Fatal, new Exception(Fatal)); } catch (Exception ex) { throw new Exception(ex.Message); } } }3.4.测试结果四定义日志输出格式1.常用输出格式归纳 2.code及测试结果 三 代码实例 本示例是基于VS2017控制条程序写的。1.后台using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using log4net;using System.Reflection;[assembly: log4net.Config.XmlConfigurator(Watch true)]namespace Log4netDemo{ class Program { static void Main(string[] args) { //Log4net几种提错类型 //创建日志记录组件 ILog iLog log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); try { iLog.Debug(Debug, new Exception(Debug)); iLog.Info(Info, new Exception(Info)); iLog.Warn(Warn, new Exception(Warn)); iLog.Error(Error, new Exception(Error)); iLog.Fatal(Fatal, new Exception(Fatal)); } catch (Exception ex) { throw new Exception(ex.Message); } } }}2.配置文件?xml version1.0 encodingutf-8 ?configuration !--声明自定义节点-- configSections section namelog4net typeSystem.Configuration.IgnoreSectionHandler/ /configSections appSettings /appSettings log4net root !--level valueInfo /-- level valueALL / !--定义日志的输出媒介如下定义四种方式-- !--文件形式记录日志-- !--appender-ref refLogFile_MinLevel_Info /-- appender-ref refLogFileInfoAppender / appender-ref refLogFileErrorAppender / !--控制台显示日志-- !--appender-ref refConsoleAppender /-- !--Windows事件日志-- !--appender-ref refEventLogAppender /-- !--数据库日志-- !--appender-ref refAdoNetAppender_Oracle /-- /root !--(高) OFF FATAL ERROR WARN INFO DEBUG ALL (低)-- logger namelog4netLevel !--level valueALL / level valueDEBUG /-- !--level valueINFO /-- !--level valueWARN / level valueERROR /-- !--level valueFATAL / level valueOFF /-- /logger !--定义输出到文件中-- !--appender nameLogFile_MinLevel_Info typelog4net.Appender.FileAppender-- appender nameLogFileInfoAppender typelog4net.Appender.FileAppender !--定义文件存放位置-- file valueE:/Log/log4netLogFile_Info.txt / appendToFile valuetrue / rollingStyle valueDate / datePattern valueyyyyMMdd-HH:mm:ss / !---定义布局模板-- layout typelog4net.Layout.PatternLayout !--每条日志末尾的文字说明-- footer valueby Alan_beijing / !--输出格式-- !--样例2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-- conversionPattern value记录时间%date;文件名%file;行号:%line;线程ID:[%thread];优先级:%priority;%newline 日志级别%-5level;运行时间:%r;出错类%logger property:[%property{NDC}];错误描述%message / /layout filter typelog4net.Filter.LevelRangeFilter param nameLevelMin valueInfo / param nameLevelMax valueInfo / /filter /appender appender nameLogFileErrorAppender typelog4net.Appender.FileAppender !--定义文件存放位置-- file valueE:/Log/llog4netLogFile_Error.txt / appendToFile valuetrue / rollingStyle valueDate / datePattern valueyyyyMMdd-HH:mm:ss / !--最大文件大小-- maximumFileSize value10MB / staticLogFileName valuefalse/ !---定义布局模板-- layout typelog4net.Layout.PatternLayout !--每条日志末尾的文字说明-- footer valueby Alan_beijing / !--输出格式-- !--样例2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-- conversionPattern value记录时间%date;文件名%file;行号:%line;线程ID:[%thread];优先级:%priority;%newline 日志级别%-5level;运行时间:%r;出错类%logger property:[%property{NDC}];错误描述%message / /layout filter typelog4net.Filter.LevelRangeFilter param nameLevelMin valueError / param nameLevelMax valueError / /filter /appender !--定义输出到控制台命令行中-- appender nameConsoleAppender typelog4net.Appender.ConsoleAppender layout typelog4net.Layout.PatternLayout conversionPattern value%date [%thread] %-5level %logger [%property{NDC}] - %message%newline / /layout /appender !--定义输出到windows事件中-- appender nameEventLogAppender typelog4net.Appender.EventLogAppender layout typelog4net.Layout.PatternLayout conversionPattern value%date [%thread] %-5level %logger [%property{NDC}] - %message%newline / /layout /appender !--定义输出到数据库中这里举例输出到Access数据库中数据库为C盘的log4net.mdb-- appender nameAdoNetAppender_Access typelog4net.Appender.AdoNetAppender connectionString valueProviderMicrosoft.Jet.OLEDB.4.0;Data SourceC:log4net.mdb / commandText valueINSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (logDate, thread, logLevel, logger,message) / !--定义各个参数-- parameter parameterName valuelogDate / dbType valueString / size value240 / layout typelog4net.Layout.PatternLayout conversionPattern value%date / /layout /parameter parameter parameterName valuethread / dbType valueString / size value240 / layout typelog4net.Layout.PatternLayout conversionPattern value%thread / /layout /parameter parameter parameterName valuelogLevel / dbType valueString / size value240 / layout typelog4net.Layout.PatternLayout conversionPattern value%level / /layout /parameter parameter parameterName valuelogger / dbType valueString / size value240 / layout typelog4net.Layout.PatternLayout conversionPattern value%logger / /layout /parameter parameter parameterName valuemessage / dbType valueString / size value240 / layout typelog4net.Layout.PatternLayout conversionPattern value%message / /layout /parameter /appender /log4net startup supportedRuntime versionv4.0 sku.NETFramework,Versionv4.5.2 / /startup/configuration四 推荐链接【01】http://logging.apache.org/log4net/相关文章.NET Core log4net 使用把旧系统迁移到.Net Core 2.0 日记2) - 依赖注入/日志NLog部署用于生产的Exceptionlees一个强大易用的日志收集服务原文地址:https://www.cnblogs.com/wangjiming/p/8600935.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com