这种C#字符串格式的性质是什么?
c#
以下内容来自此 Microsoft 文档。
_logger.LogInformation("Queued Background Task {Guid} is running. " +
"{DelayLoop}/3", guid, delayLoop);
这种类型的字符串格式是什么?换句话说,它叫什么,它在哪里记录?它是 .NET 还是需要第三方库?
回答
它是 ASP.NET Core 日志记录 - 或者更一般地说,通过Microsoft.Extensions.Logging.Abstractions.
尽管它看起来有点像 C# 内插字符串文字,但消息实际上是由日志基础结构格式化的。该字符串是一个消息模板。在消息模板中指定的名称是完全独立的后面提供的表达式的-但顺序中的占位符的预计将提供的值的顺序。
这允许日志记录提供提取键/值对以执行结构化日志记录......因此,例如,您可能会以 JSON 格式结束日志条目,如下所示:
{
"message": "Queued Background Task 1234-5678[...] is running. 100/3",
"properties": {
"Guid": "1234-5678[...]",
"DelayLoop": 100
}
}
(这取决于日志记录提供程序。)