c# – .net core 2.1 log4net with multip environment

c# – .net core 2.1 log4net with multip environment,第1张

概述我正在研究.net核心2.1应用程序并尝试合并log4net以将日志写入文件.我可以让它工作,但无法弄清楚如何写入日志将在不同位置的不同环境(即测试/生产). log4net.config <log4net> <root> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> < 我正在研究.net核心2.1应用程序并尝试合并log4net以将日志写入文件.我可以让它工作,但无法弄清楚如何写入日志将在不同位置的不同环境(即测试/生产).

log4net.config

<log4net>    <root>        <appender-ref ref="console" />    <appender-ref ref="file" />  </root>  <appender name="console" type="log4net.Appender.ConsoleAppender">    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date %level - %message%newline" />    </layout>    <threshold value="Info" />  </appender>  <appender name="file" type="log4net.Appender.RollingfileAppender">    <file value="C:\logs\TestLocation\MyLog.log" />    <appendTofile value="true" />    <rollingStyle value="Size" />    <maxSizeRollBackups value="5" />    <maximumfileSize value="100MB" />    <staticLogfilename value="true" />    <layout type="log4net.Layout.PatternLayout">      <conversionPattern value="%date [%thread] %level - %message%newline" />    </layout>    <threshold value="Info" />  </appender></log4net>

我的startup.cs配置方法是:

loggerFactory.AddLog4Net();

我将记录器注入我的控制器:

public MyController(ILogger<MyController> logger) {     _logger = logger; }

并在我的控制器中使用它:

_logger.Loginformation("My logger worked!!!!!!!!!!!");

一切正常.我希望我可以添加一个新的log4net.config文件,并将其命名为log4net.Production.config,应用程序将使用不同的配置文件,具体取决于它所在的环境,如appnsettings.Json.相反,它只使用我的默认log4net.config文件.

是否可以为appsettings.Json等每个环境提供多个log4net.config文件?

解决方法 在您的Startup.cs上,您可以像这样配置它:

public Startup(IConfiguration configuration,IHostingEnvironment env){    fileInfo fInfo;    if (file.Exists(Path.Combine(env.ContentRootPath,$"log4net.{env.Environmentname}.xml")))        fInfo = env.GetLog4Netfile($"log4net.{env.Environmentname}.xml");    else        fInfo = env.GetLog4Netfile($"log4net.xml");    XmlConfigurator.Configure(fInfo);    LogManager.GetLogger(DefaultLoggername)?.Info($"Environment={env.Environmentname}");     Configuration = configuration;}

然后,您可以创建一个类似log4net.Production.xml的文件,并根据使用的环境对其进行自定义.

总结

以上是内存溢出为你收集整理的c# – .net core 2.1 log4net with multip environment全部内容,希望文章能够帮你解决c# – .net core 2.1 log4net with multip environment所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1239775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存