我正在尝试理解dotnet run的日志输出,用于ASP.NET核心项目。有许多地方显示完整的类型名称,后面是索引器语法。
这个页面解释了数组类型是如何表示的,但是在这种情况下没有索引。
Console.WriteLine(new string[100]);显示:
System.String[]
这是一个实际的dotnet run输出:
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58]
如何解读前一篇课文?什么是58?
它是一个通用的C#字符串表示吗?什么样的代码构造会输出这样的东西?
发布于 2019-06-02 15:30:24
在提供的示例中,有三个组件:
ASP.NET Core使用ILogger和ILogger<T>进行日志记录,使用如下调用:
logger.LogInformation(...);您展示的日志消息示例来自控制台提供程序,它有自己的规则来设置消息的格式。默认情况下,这是以level: category[eventID]的标题行开始的,如我所示。
作为一个粗略的例子,您可能会想到下面的代码用于生成最终消息:
var logLevel = "info";
var logCategory = "Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager";
var logEventId = 58;
Console.Writeline($"{logLevel}: {logCategory}[{logEventId}]");https://stackoverflow.com/questions/56416145
复制相似问题