.NET Core中如何实现System.Net与System.Net.Sockets的跟踪?
.NET Core中如何跟踪System.Net和System.Net.Sockets命名空间
问题描述
在.NET Framework中,我们可通过配置文件跟踪System.Net和System.Net.Sockets命名空间,但在.NET Core中尝试相同方式却未成功。原.NET Framework的配置代码如下:
<system.diagnostics> <trace autoflush="true"/> <sources> <source name="System.Net" maxdatasize="1024"> <listeners> <add name="TraceFile"/> </listeners> </source> <source name="System.Net.Sockets" maxdatasize="1024"> <listeners> <add name="TraceFile"/> </listeners> </source> </sources> <sharedListeners> <add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/> </sharedListeners> <switches> <add name="System.Net" value="Verbose" /> <add name="System.Net.Sockets" value="Verbose" /> </switches> </system.diagnostics>
.NET Core中的实现方式
方法1:通过appsettings.json配置
.NET Core不再沿用system.diagnostics的XML配置模式,而是基于Microsoft.Extensions.Logging体系实现日志跟踪。在appsettings.json中添加如下配置,指定目标命名空间的日志级别:
{ "Logging": { "LogLevel": { "Default": "Information", "System.Net": "Debug", "System.Net.Sockets": "Debug" }, "Console": { "IncludeScopes": true }, "File": { "Path": "trace.log", "LogLevel": { "System.Net": "Debug", "System.Net.Sockets": "Debug" } } } }
注意:若需将日志输出到文件,需先通过NuGet安装对应日志提供程序(如Serilog.Sinks.File或Microsoft.Extensions.Logging.File),再完成上述配置。
方法2:通过代码直接配置
如果偏好代码配置而非配置文件,可在应用启动时直接设置日志规则:
using Microsoft.Extensions.Logging; var builder = WebApplication.CreateBuilder(args); // 配置日志:设置目标命名空间的日志级别,同时添加控制台和文件输出 builder.Logging.AddFilter("System.Net", LogLevel.Debug) .AddFilter("System.Net.Sockets", LogLevel.Debug) .AddConsole() .AddFile("trace.log"); // 需对应日志包支持 var app = builder.Build(); // 应用业务代码... app.Run();
额外说明
- .NET Core日志体系与.NET Framework的
System.Diagnostics.Trace机制完全不同,需切换到新的日志模型。 - 日志级别映射:原.NET Framework的
Verbose对应.NET Core的Debug或Trace级别(Trace粒度更细)。 - 若需捕获底层网络调用细节,可使用.NET Core自带的
dotnet trace命令行工具:
dotnet trace collect --providers System.Net.Http,System.Net.Sockets --output trace.nettrace
生成的.nettrace文件可通过Visual Studio或dotnet trace analyze命令查看完整的网络调用链路信息。
内容的提问来源于stack exchange,提问作者user3017827
相关产品推荐
相关产品推荐

