如何使用语义记录在运行时更改日志级别?
在我的Global.asax Application_Startup中,我有以下代码:
var listener = new ObservableEventListener();
listener.EnableEvents((EventSource) MyCustomEventSource.Log, EventLevel.Informational, Keywords.All);
listener.LogToRollingFlatFile(@"logs\events.json", 5000, "MM-dd-yyyy",
RollFileExistsBehavior.Increment,
RollInterval.Week,
new JsonEventTextFormatter(), 4);
如何在我的进程启动后更改日志级别。我的支持团队可能希望在故障排除会话期间将日志记录设置为Verbose,然后在发现问题后将其重新关闭。他们希望在不停止或重新启动过程的情况下执行此操作。
答案 0 :(得分:3)
首先,我强烈建议您使用out-of-process host进行制作。原因主要是performance related。
Dynamic configuration是进程外服务的一项功能。您需要做的就是修改相应level
上的<eventSource />
属性,并自动选择更改。
答案 1 :(得分:1)
第一步是不将所有代码放在Application_Startup中,因为它只在启动应用程序时运行。 8)
第二步是将硬编码的'EventLevel.Informational'取出,并使用从配置文件中读入的属性。
第三步是在该配置文件上注册监视,以便在更新文件时调用您的代码,并且可以修改日志记录级别。
我稍后会在有机会时添加代码,但这些步骤应该会给你一个想法。沿着这些方向...... Watching log4net log file with FileSystemWatcher
MSDN:https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx