如何在 运行 时间更改语义日志记录中的日志级别?
How to change the log level in semantic logging at run time?
如何使用语义日志记录在 运行 时间更改日志级别?
在我的 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,然后在发现问题后将其关闭。他们希望在不停止或重新启动流程的情况下执行此操作。
第一步是不要将所有代码都放在 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
首先,我强烈推荐使用out-of-process host for production. The reasons for this are primarily performance related。
Dynamic configuration是进程外服务的一个特性。您需要做的就是修改相应 <eventSource />
上的 level
属性,更改应该会自动生效。
这是一个 example configuration。
如何使用语义日志记录在 运行 时间更改日志级别?
在我的 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,然后在发现问题后将其关闭。他们希望在不停止或重新启动流程的情况下执行此操作。
第一步是不要将所有代码都放在 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
首先,我强烈推荐使用out-of-process host for production. The reasons for this are primarily performance related。
Dynamic configuration是进程外服务的一个特性。您需要做的就是修改相应 <eventSource />
上的 level
属性,更改应该会自动生效。
这是一个 example configuration。