.NET Core下如何使用Log4Net记录日志(log4net,开发技术)

时间:2024-05-09 11:23:18 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

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&quot;.log&quot;"/><paramname="StaticLogFileName"value="false"/><layouttype="log4net.Layout.PatternLayout,log4net"><paramname="ConversionPattern"value="%n{&quot;system&quot;:&quot;Meowv.Blog&quot;,&quot;datetime&quot;:&quot;%d&quot;,&quot;description&quot;:&quot;%m&quot;,&quot;level&quot;:&quot;%p&quot;,&quot;info&quot;:&quot;%exception&quot;}"/></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&quot;.log&quot;"/><paramname="StaticLogFileName"value="false"/><layouttype="log4net.Layout.PatternLayout,log4net"><paramname="ConversionPattern"value="%n{&quot;system&quot;:&quot;Meowv.Blog&quot;,&quot;datetime&quot;:&quot;%d&quot;,&quot;description&quot;:&quot;%m&quot;,&quot;level&quot;:&quot;%p&quot;,&quot;info&quot;:&quot;%exception&quot;}"/></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();}}}

.NET Core下如何使用Log4Net记录日志

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();}}}

.NET Core下如何使用Log4Net记录日志

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:.NET Core下如何使用Log4Net记录日志的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:讲解.NET中使用DiagnosticSource的方法下一篇:

13 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18