我可以在 ASP .Net Core 中使用 TraceSource 进行日志记录吗?
Can I use TraceSource in ASP .Net Core for logging?
可以从我的 ASP .NET Core 项目中的 System.Diagnostics
访问 TraceSource。
在 src 文件中你可以找到 header:
#region Assembly System.Diagnostics.TraceSource, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app.2.0\ref\netcoreapp2.2\System.Diagnostics.TraceSource.dll
#endregion
这是什么意思? .Net Famework >=4.1.1.0 的版本是否可以接受? TraceSource 是否包含在某些版本的 .Net Standard 中?
更新我的决议:
需要配置。
1) app.config 仅适用于 .NET Framework,https://github.com/dotnet/corefx/issues/24829
2) .Net Core 草案:
TraceSource.Listeners.Add(new MyListener());
TraceSource.Switch = new SourceSwitch();
这段代码可能会对您有所帮助。
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
optional: true, reloadOnChange: true);
config.AddEnvironmentVariables();
})
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddEventSourceLogger();
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
您还可以关注 this link 以获得有关登录 dotnet 核心的深入指南。
可以从我的 ASP .NET Core 项目中的 System.Diagnostics
访问 TraceSource。
在 src 文件中你可以找到 header:
#region Assembly System.Diagnostics.TraceSource, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app.2.0\ref\netcoreapp2.2\System.Diagnostics.TraceSource.dll
#endregion
这是什么意思? .Net Famework >=4.1.1.0 的版本是否可以接受? TraceSource 是否包含在某些版本的 .Net Standard 中?
更新我的决议: 需要配置。
1) app.config 仅适用于 .NET Framework,https://github.com/dotnet/corefx/issues/24829
2) .Net Core 草案:
TraceSource.Listeners.Add(new MyListener());
TraceSource.Switch = new SourceSwitch();
这段代码可能会对您有所帮助。
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
optional: true, reloadOnChange: true);
config.AddEnvironmentVariables();
})
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddEventSourceLogger();
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
您还可以关注 this link 以获得有关登录 dotnet 核心的深入指南。