c# – .net core 2.1 log4net with multip environment
发布时间:2020-12-15 22:54:56 所属栏目:百科 来源:网络整理
导读:我正在研究.net核心2.1应用程序并尝试合并log4net以将日志写入文件.我可以让它工作,但无法弄清楚如何写入日志将在不同位置的不同环境(即测试/生产). log4net.config log4net root appender-ref ref="console" / appender-ref ref="file" / /root appender na
我正在研究.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:logsTestLocationMyLog.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的文件,并根据使用的环境对其进行自定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 收集的sqlite3.7.15.1提供给大家下载(包含jdbc)_
- 如何使用autotools使用clang和选项-std = c 11编
- c – 由于KERNELBASE.dll错误,GDB无法运行程序
- React Native 调试步骤
- 九爷带你了解 带你了解 Nosql Redis ttserver Fl
- ruby-on-rails – 为flash消息添加id或类
- oracle – 防止sqlplus截断列名,而不进行单独的列
- FreeSWITCH - mod_xml_rpc源码分析七server.c
- Flex特效的一个小示例(state、呈示器、mxml外观用
- 依赖注入 – 什么是依赖注入上下文中的组合根
热点阅读