.NET Core下如何使用Log4Net记录日志
导读:本文共3367.5字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Log4Net 相信大家都很熟悉了,算是比较主流和著名的日志组件了。官网: logging.apache.org开源地址: https://github.com/apache/logging-log4net最佳实践在项目中添加组件包Install-Packagelog4net添加 log4net.config 文件<?xmlversion="1.... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。Log4Net
相信大家都很熟悉了,算是比较主流和著名的日志组件了。
官网: logging.apache.org
开源地址: https://github.com/apache/logging-log4net
最佳实践
在项目中添加组件包
Install-Packagelog4net
添加 log4net.config
文件
<?xmlversion="1.0"encoding="utf-8"?><configuration><configSections><sectionname="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/></configSections><log4netdebug="false"><appendername="info"type="log4net.Appender.RollingFileAppender,log4net"><paramname="File"value="log4net/info/"/><paramname="AppendToFile"value="true"/><paramname="MaxSizeRollBackups"value="-1"/><paramname="MaximumFileSize"value="5MB"/><paramname="RollingStyle"value="Composite"/><paramname="DatePattern"value="yyyyMMdd\\HH".log""/><paramname="StaticLogFileName"value="false"/><layouttype="log4net.Layout.PatternLayout,log4net"><paramname="ConversionPattern"value="%n{"system":"Meowv.Blog","datetime":"%d","description":"%m","level":"%p","info":"%exception"}"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><levelMinvalue="INFO"/><levelMaxvalue="INFO"/></filter></appender><appendername="error"type="log4net.Appender.RollingFileAppender,log4net"><paramname="File"value="log4net/error/"/><paramname="AppendToFile"value="true"/><paramname="MaxSizeRollBackups"value="-1"/><paramname="MaximumFileSize"value="5MB"/><paramname="RollingStyle"value="Composite"/><paramname="DatePattern"value="yyyyMMdd\\HH".log""/><paramname="StaticLogFileName"value="false"/><layouttype="log4net.Layout.PatternLayout,log4net"><paramname="ConversionPattern"value="%n{"system":"Meowv.Blog","datetime":"%d","description":"%m","level":"%p","info":"%exception"}"/></layout><filtertype="log4net.Filter.LevelRangeFilter"><levelMinvalue="ERROR"/><levelMaxvalue="ERROR"/></filter></appender><root><levelvalue="ALL"></level><appender-refref="info"/><appender-refref="error"/></root></log4net></configuration>
控制台项目
usinglog4net;usinglog4net.Config;usingSystem;usingSystem.IO;usingSystem.Reflection;namespaceConsoleAppDemo{classProgram{staticvoidMain(string[]args){varlog4netRepository=LogManager.GetRepository(Assembly.GetEntryAssembly());XmlConfigurator.Configure(log4netRepository,newFileInfo("log4net.config"));ILoglog=LogManager.GetLogger(log4netRepository.Name,"NETCorelog4net");log.Info("NETCorelog4netlog");log.Info("testlog");log.Error("error");log.Info("linezero");Console.ReadKey();}}}
AspNetCore项目
新建一个静态类,写一个扩展方法 UseLog4Net()
,用于 log4net
初始化。
publicstaticclassLog4NetExtensions{publicstaticIHostBuilderUseLog4Net(thisIHostBuilderhostBuilder){varlog4netRepository=LogManager.GetRepository(Assembly.GetEntryAssembly());XmlConfigurator.Configure(log4netRepository,newFileInfo("log4net.config"));returnhostBuilder;}}
扩展方法返回 IHostBuilder
对象,这样可以链式调用,美化代码,然后在 Program.cs
中使用扩展方法 UseLog4Net()
。
usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.Extensions.Hosting;namespaceWebAppDemo{publicclassProgram{publicstaticvoidMain(string[]args){CreateHostBuilder(args).Build().Run();}publicstaticIHostBuilderCreateHostBuilder(string[]args)=>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder=>{webBuilder.UseStartup<Startup>();}).UseLog4Net();}}
配置完成,然后在任意地方写入日志即可。
usinglog4net;usingMicrosoft.AspNetCore.Mvc;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceWebAppDemo.Controllers{[ApiController][Route("[controller]")]publicclassWeatherForecastController:ControllerBase{privatestaticreadonlystring[]Summaries=new[]{"Freezing","Bracing","Chilly","Cool","Mild","Warm","Balmy","Hot","Sweltering","Scorching"};privatereadonlyILog_log;publicWeatherForecastController(){_log=LogManager.GetLogger(typeof(WeatherForecastController));}[HttpGet]publicIEnumerable<WeatherForecast>Get(){_log.Info("Hello,thisisaWeatherapi!");_log.Warn("Wran!!!");_log.Error("ControllerError");varrng=newRandom();returnEnumerable.Range(1,5).Select(index=>newWeatherForecast{Date=DateTime.Now.AddDays(index),TemperatureC=rng.Next(-20,55),Summary=Summaries[rng.Next(Summaries.Length)]}).ToArray();}}}
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
.NET Core下如何使用Log4Net记录日志的详细内容,希望对您有所帮助,信息来源于网络。