您的位置 首页 > 德语词汇

netlog是什么意思、读音(.net core 中log4net封装扩展)

这篇文章给大家聊聊关于netlog是什么意思、读音,以及.net core 中log4net封装扩展对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

在程序开发中,日志记录是必不可少的,为了能够记录程序异常、程序运行性能等。

netlog是什么意思、读音(.net core 中log4net封装扩展)

下面是我在工作中对log4net扩展封装

需要源码的可以关注私信我,相互学习提高

<?xmlversion="1.0"encoding="utf-8"?>\n<configuration>\n<!--Thissectioncontainsthelog4netconfigurationsettings-->\n<log4net>\n<appendername="ConsoleAppender"type="log4net.Appender.ConsoleAppender">\n<layouttype="log4net.Layout.PatternLayout"value="%date[%thread]%-5level%logger-%message%newline"/>\n</appender>\n\n<appendername="FileAppender"type="log4net.Appender.FileAppender">\n<filevalue="log-file.log"/>\n<appendToFilevalue="true"/>\n<layouttype="log4net.Layout.PatternLayout">\n<conversionPatternvalue="%date[%thread]%-5level%logger[%property{NDC}]-%message%newline"/>\n</layout>\n</appender>\n\n<appendername="RollingLogFileAppender"type="log4net.Appender.RollingFileAppender">\n<filevalue="logfile/"/>\n<appendToFilevalue="true"/>\n<rollingStylevalue="Composite"/>\n<staticLogFileNamevalue="false"/>\n<datePatternvalue="yyyyMMdd'.log'"/>\n<maxSizeRollBackupsvalue="10"/>\n<maximumFileSizevalue="1MB"/>\n<layouttype="log4net.Layout.PatternLayout">\n<conversionPatternvalue="%date[%thread]%-5level%logger[%property{NDC}]-%message%newline"/>\n</layout>\n</appender>\n\n<appendername="AopRollingLogFileAppender"type="log4net.Appender.RollingFileAppender">\n<filevalue="logfile/"/>\n<appendToFilevalue="true"/>\n<rollingStylevalue="Composite"/>\n<staticLogFileNamevalue="false"/>\n<datePatternvalue="yyyyMMdd'_Aop.log'"/>\n<maxSizeRollBackupsvalue="10"/>\n<maximumFileSizevalue="1MB"/>\n<layouttype="log4net.Layout.PatternLayout">\n<conversionPatternvalue="%date[%thread]%-5level%logger[%property{NDC}]-%message%newline"/>\n</layout>\n</appender>\n\n<!--Setuptherootcategory,addtheappendersandsetthedefaultlevel-->\n<root>\n<levelvalue="ALL"/>\n<appender-refref="ConsoleAppender"/>\n<appender-refref="FileAppender"/>\n<appender-refref="RollingLogFileAppender"/>\n</root>\n<loggername="Aop">\n<levelvalue="ALL"/>\n<appender-refref="AopRollingLogFileAppender"/>\n</logger>\n\n</log4net>\n</configuration>添加Log4Net工厂

usinglog4net;\nusingSystem;\nusingSystem.Collections.Generic;\nusingSystem.Linq;\nusingSystem.Runtime.CompilerServices;\nusingSystem.Text;\nusingSystem.Threading.Tasks;\n\n\n\nnamespaceNCore.Extensions.Log4NetEX\n{\npublicclassNCoreLoggerFactory:NCore.Logging.ILoggerFactory\n{\npublicLogging.ILoggerGetCurrentClassLogger()\n{\nreturnnewNCoreLogger(LogManager.GetLogger(Extensions.repository.Name,"NETCorelog4net"));\n}\n\npublicLogging.ILoggerGetCurrentClassLogger(TypeloggerType)\n{\nreturnnewNCoreLogger(LogManager.GetLogger(Extensions.repository.Name,loggerType));\n}\n\npublicLogging.ILoggerGetLogger(stringname)\n{\nreturnnewNCoreLogger(LogManager.GetLogger(Extensions.repository.Name,name));\n}\n\npublicLogging.ILoggerGetLogger(stringname,TypeloggerType)\n{\nreturnnewNCoreLogger(LogManager.GetLogger(name,loggerType));\n}\n}\n}\n对Log4Net的主要方法进行包装

\n\nusinglog4net;\nusingMicrosoft.Extensions.Logging;\nusingSystem;\nusingSystem.Collections.Generic;\nusingSystem.Linq;\nusingSystem.Text;\nusingSystem.Threading.Tasks;\n\nnamespaceNCore.Extensions.Log4NetEX\n{\npublicclassNCoreLogger:NCore.Logging.ILogger\n{\nILoglogger;\npublicNCoreLogger(ILog_logger)\n{\nif(Extensions.repository.Name.IsNullOrEmpty())\n{\nExtensions.repository.Name="NCore";\n}\nlogger=_logger;\n}\n\npublicvoidDebug(stringmessage)\n{\nlogger.Debug(message);\n}\n\npublicvoidDebug(stringmessage,Exceptionexception)\n{\nlogger.Debug(message,exception);\n}\n\npublicvoidError(Exceptionexception)\n{\nlogger.Error(exception);\n}\n\npublicvoidError(stringmessage)\n{\nlogger.Error(message);\n}\n\npublicvoidError(stringmessage,Exceptionexception)\n{\nlogger.Error(message,exception);\n}\n\npublicvoidFatal(stringmessage)\n{\nlogger.Fatal(message);\n}\n\npublicvoidFatal(stringmessage,Exceptionexception)\n{\nlogger.Fatal(message,exception);\n}\n\npublicvoidInfo(stringmessage)\n{\nlogger.Info(message);\n}\n\npublicvoidInfo(stringmessage,Exceptionexception)\n{\nlogger.Info(message,exception);\n}\n\npublicvoidTrace(stringmessage)\n{\n//logger.Trace(message);\n}\n\npublicvoidTrace(stringmessage,Exceptionexception)\n{\n//logger.Trace(message,exception);\n}\n\npublicvoidWarn(stringmessage)\n{\nlogger.Warn(message);\n}\n\npublicvoidWarn(stringmessage,Exceptionexception)\n{\nlogger.Warn(message,exception);\n}\n}\n}\n封装注入扩展

usingSystem;\nusingSystem.Collections.Generic;\nusingSystem.Linq;\nusingSystem.Threading.Tasks;\nusingMicrosoft.AspNetCore.Hosting;\nusingMicrosoft.Extensions.Logging;\nusingSystem.IO;\nusingMicrosoft.Extensions.DependencyInjection;\nusingNCore;\nusinglog4net;\nusinglog4net.Config;\nusinglog4net.Repository;\n\nnamespaceNCore.Extensions.Log4NetEX\n{\n///<summary>\n///HelpersforASP.NETCore\n///</summary>\npublicstaticclassExtensions\n{\n\n///<summary>\n///EnableNLogasloggingproviderinASP.NETCore.\n///</summary>\n///<paramname="factory"></param>\n///<returns></returns>\npublicstaticILoggerRepositoryrepository;\npublicstaticIServiceCollectionUseNCoreLog(thisIServiceCollectionserviceCollection,stringconfigPath="")\n{\nvarfileName=Path.Combine(AppContext.BaseDirectory,configPath);\nConfigureLog(fileName);\n\nserviceCollection.AddSingleton<NCore.Logging.ILogger>(newNCoreLoggerFactory().GetLogger("NCore"));\nserviceCollection.AddScoped<NCore.Logging.ILoggerFactory,NCoreLoggerFactory>();\n\nreturnserviceCollection;\n}\n\n///<summary>\n///ApplyNLogconfigurationfromXMLconfig.\n///</summary>\n///<paramname="env"></param>\n///<paramname="configFileRelativePath">relativepathtoNLogconfigurationfile.</param>\npublicstaticvoidConfigureNLog(thisIHostingEnvironmentenv,stringconfigFileRelativePath)\n{\nvarfileName=Path.Combine(env.ContentRootPath,configFileRelativePath);\nConfigureLog(fileName);\n}\n\n///<summary>\n///ApplyNLogconfigurationfromXMLconfig.\n///</summary>\n///<paramname="fileName">absolutepathNLogconfigurationfile.</param>\nprivatestaticvoidConfigureLog(stringfileName)\n{\n//LogManager.Configuration=newXmlLoggingConfiguration(fileName,true);\nrepository=LogManager.CreateRepository("NCore");\nXmlConfigurator.ConfigureAndWatch(repository,newFileInfo(fileName));\n}\n}\n}\n注入方法

#region注入log4net日志\nif(ncoreAspNetOptions!=null&&!ncoreAspNetOptions.Log4netConfig.IsNullOrEmpty())\n{\nstringLog4netConfig=$"{AppContext.BaseDirectory}{ncoreAspNetOptions.Log4netConfig}";\nif(File.Exists(Log4netConfig))//存在就语取配置文件里的\n{\nservices.UseNCoreLog(configPath:ncoreAspNetOptions.Log4netConfig);\n}\nelse\n{\nConsole.WriteLine($"日志配置文件不存在:{ncoreAspNetOptions.Log4netConfig},请确认配置文件路径正确性");\n}\n}\n#endregion日志使用

usingMicrosoft.AspNetCore.Http;\nusingMicrosoft.AspNetCore.Mvc;\nusingSystem;\nusingSystem.Collections.Generic;\nusingSystem.IO;\nusingSystem.Text;\n\nnamespaceNCore.Web.Controllers\n{\npublicabstractclassControllerCore:Controller\n{\n#region日志相关\npublicabstractTypeThisClassType{get;}\n\n\npublicNCore.Logging.ILoggerFactoryloggerFactory{get;set;}\n\nprivateNCore.Logging.ILogger_logger;\n\n///<summary>\n///日志对象\n///</summary>\npublicNCore.Logging.ILoggerLogger\n{\nget\n{\nif(_logger==null)\n_logger=loggerFactory.GetCurrentClassLogger(this.ThisClassType);\nreturn_logger;\n}\n}\n#endregion\n\n}\n}\n

在需要写日志的地方调用

try\n{\nresponse=client.pageExecute(request,null,"post");\nvarsyncIOFeature=HttpContext.Features.Get<IHttpBodyControlFeature>();\nif(syncIOFeature!=null)\n{\nsyncIOFeature.AllowSynchronousIO=true;\n}\n\nvarbytes=response.Body.ToBytes();\nthis.Response.ContentType="text/html";\nthis.Response.Body.Write(bytes,0,bytes.Length);\n}\ncatch(Exceptionexp)\n{\nlogger.Error(exp);\n}

日志记录效果

需要源码的可以关注私信我,相互学习提高

关于netlog是什么意思、读音的内容到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023