首页 >> 运营 >> 如何在ASP.NET Core 6中使用监控侦听器

如何在ASP.NET Core 6中使用监控侦听器

2025-05-15 运营

所有侦听器都将接收搜索转换成。但是,可以用到侦听器而不将其去掉到侦听器空集当中。在这种只能,用到侦听器当中的Write或WriteLine方式邮寄转换成。

都有的字符预览了一个侦听器,该侦听器未去掉到侦听器空集,但仍能够将搜索第一时间邮寄到转换成后台、文件或任何预配有的转换成。

拷贝

TextWriterTraceListener myFirstListener = new

TextWriterTraceListener("Output.txt", "myFirstListener");

myFirstListener.WriteLine("This is a test message.");

myFirstListener.Flush();

在ASP.NET Core 6当中创始人内置搜索侦听器

在大多数只能,.NET 6附带的搜索侦听器将满足要求。但是,如果JaScript想将搜索第一时间转换成到有所不同的中继站,可以付诸自己的搜索侦听器。

要构建内置搜索侦听器,应创始人一个扩大TraceListener抽象类的类。TraceListener类当中有几个虚拟和抽象方式。JaScript至少应付诸Write和WriteLine方式。内置搜索侦听器如下所示:

拷贝

public class CustomTraceListener : TraceListener

{

public CustomTraceListener(ILoggerFactory loggerFactory)

{

}

public override void Write(string? message, string? category)

{

}

public override void Write(string? message)

{

}

public override void WriteLine(string? message)

{

}

}

因此,内置搜索侦听器类必需不具备参数构造函数以及Write和WriteLine方式。

JaScript还需要一个表示黑盒子的ILogger实例、一个创始人黑盒子的ILoggerFactory和一个StringBuilder来存储搜索第一时间,然后再将它们邮寄到存档能够。

拷贝

private readonly ILoggerFactory _loggerFactory;

private readonly ILogger _iLogger;

private readonly StringBuilder _stringBuilder = new();

JaScript可以利用依赖汇流在构造函数当中汇流ILoggerFactory的实例,然后用到该实例创始人ILogger的实例。

拷贝

public CustomTraceListener(ILoggerFactory loggerFactory)

{

_loggerFactory = loggerFactory;

_iLogger = loggerFactory.CreateLogger(nameof(CustomTraceListener));

}

下面是Write和WriteLine方式的最小付诸:

拷贝

public override void Write(string? message, string? category)

{

_stringBuilder.Append(message + "-" + category);

}

public override void Write(string? message)

{

_stringBuilder.Append(message);

}

public override void WriteLine(string? message)

{

_stringBuilder.AppendLine(message);

_iLogger.LogInformation(_stringBuilder.ToString());

_stringBuilder.Clear();

}

ASP.NET Core 6当中清晰的内置搜索侦听器下述

都有是内置搜索侦听器的最小付诸的清晰源字符,以供参考。

拷贝

using System.Collections.Concurrent;

using System.Diagnostics;

using System.Text;

namespace TraceListenerDemo

{

public class CustomTraceListener : TraceListener

{

private readonly ILoggerFactory _loggerFactory;

private readonly ILogger _iLogger;

private readonly StringBuilder _stringBuilder = new();

public CustomTraceListener(ILoggerFactory loggerFactory)

{

_loggerFactory = loggerFactory;

_iLogger =

loggerFactory.CreateLogger(nameof(CustomTraceListener));

}

public override void Write(string? message, string? category)

{

_stringBuilder.Append(message + "-" + category);

}

public override void Write(string? message)

{

_stringBuilder.Append(message);

}

public override void WriteLine(string? message)

{

_stringBuilder.AppendLine(message);

_iLogger.LogInformation(_stringBuilder.ToString());

_stringBuilder.Clear();

}

}

}

在Program.cs文件当中申请人内置搜索侦听器

要用到内置搜索侦听器,应用到都有字符将其申请人到Listeners空集。

拷贝

var loggerFactory = app.Services.GetRequiredService();

Trace.Listeners.Add(new LoggerTraceListener(loggerFactory));

因为内置搜索侦听器已经去掉到侦听器空集当中,所以它将捕捉到直通时转化成的所有搜索第一时间,并将转换成邮寄到黑盒子。它还将邮寄在插件当中显式邮寄的任何搜索第一时间(就像在上去的myFirstListener下述当中所做的那样)。

因此,去掉到Listeners空集的任何侦听器都可以捕捉到直通时转化成的搜索以及在插件当中显式邮寄的任何搜索第一时间。但是,如果未将搜索侦听器去掉到空集当中,则它并不需要邮寄在插件当中显式邮寄的搜索第一时间。它可能会捕捉到直通时转化成的任何搜索第一时间。

用到内置搜索侦听器时,必需记下关闭或刷新搜索侦听器以必需清空转换成默认。可以利用StringBuilderCache类来优化用到StringBuilder的字符(在CustomTraceListener类当中)。

原文标题:How to work with trace listeners in ASP.NET Core 6,作者:Joydip Kanjilal

秦皇岛男科医院哪家最好
宁波看白癜风去哪里
黑龙江炎治疗医院
上海哪家医院做人流比较好
河南白癜风医院挂号咨询
如何缓解眼睛疲劳酸痛
克癀胶囊和片仔癀是否一样
内痔外痔
干眼症异物感怎么能消失
鱼腥草合剂的功效与作用
友情链接