ASP.Net Core 文档这里 有一个很好的控制台日志输出,如下图所示,并带有各种 LogLevel 的颜色。我现在已经在 Visual Studio 中创建了一个应用程序,我发现它现在在 IIS Express 后面运行,并且我不再看到控制台。我记得当我运行 beta 版时,它确实直接弹出 Kestrel 并带有这个漂亮的控制台输出。
现在可以得到这个漂亮的窗户吗?
附注有点奇怪的是,文档中仍然包含这些您甚至看不到的图像。
除了 Dawid Rutkowski 的回答之外,在顶部下拉列表中,不要选择 IISExpress,而是选择应用程序名称。您应该能够看到控制台和网页。
是的,可以通过 IIS Express 实现。使用 Microsoft.Extensions.Logging.Debug nuget 包:https://github.com/aspnet/Logging/tree/master/src/Microsoft.Extensions.Logging.Debug。在 Startup.cs 中配置记录器:
loggerFactory.MinimumLevel = LogLevel.Debug;
loggerFactory.AddDebug( LogLevel.Debug );
var logger = loggerFactory.CreateLogger("Startup");
logger.LogWarning("Logger configured!");
并且:
Console.WriteLine("Hi!");
所以这个解决方案对我不起作用,但有效的方法是在记录器配置中将
applyThemeToRedirectedOutput
设置为 true
。我在这里找到了这个解决方案:颜色主题未出现在输出中
Log.Logger = new LoggerConfiguration()
.WriteTo.Console(theme: AnsiConsoleTheme.Literate, applyThemeToRedirectedOutput: true)
.CreateLogger();
或者在 appsettings.json 中:
"WriteTo": [
{
"Name": "Console",
"Args": {
"applyThemeToRedirectedOutput": true,
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Literate, Serilog.Sinks.Console",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj} [{SourceContext}]{NewLine}{Exception}"
}
}
]
读取配置:
services.AddSerilog((hostingContext, loggerConfiguration) => loggerConfiguration.ReadFrom.Configuration(configuration));