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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)