您可以使用EventFlow 来捕获日志并转发到ApplicationInsights 等目标存储。
您仍然可以使用现有的 ILogger 或将其替换为使用 ETW。
例如,如果您想将日志写入跟踪,并且它们会捕获跟踪信息以转发到另一个存储,您必须:
添加对包Microsoft.Diagnostics.EventFlow的引用
创建 eventFlowConfig.json 文件以定义输入和输出:
{
"inputs": [
{
"type": "Trace",
"traceLevel": "Warning"
}
],
"outputs": [
{
"type": "ApplicationInsights",
"instrumentationKey": "00000000-0000-0000-0000-000000000000"
}
]
}
用 EventFlow 管道包装你的 webapp 初始化:
using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
{
//App initialization goes here
System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
Console.ReadLine();//this will be replaced by your webHost start
}
您可以有多个输入,因此如果您还想监控 ETW 事件,您也可以将其添加到输入列表中。