这个 C# 字符串格式的本质是什么?
What is the nature of this C# string formatting?
_logger.LogInformation("Queued Background Task {Guid} is running. " +
"{DelayLoop}/3", guid, delayLoop);
这种字符串格式是什么?换句话说,它叫什么,它在哪里记录?是 .NET 还是需要第三方库?
它是 ASP.NET 核心日志记录 - 或者更一般地说,通过 Microsoft.Extensions.Logging.Abstractions
进行日志记录。
虽然它看起来有点像 C# 内插字符串文字,但消息实际上是由日志记录基础结构格式化的。字符串是 message template。消息模板中指定的名称完全独立于稍后提供的表达式 - 但占位符的 order 应为所提供值的顺序。
这允许日志记录提供提取 key/value 对以执行结构日志记录...因此例如您 可以 以 [=29= 中的日志条目结束] 像这样:
{
"message": "Queued Background Task 1234-5678[...] is running. 100/3",
"properties": {
"Guid": "1234-5678[...]",
"DelayLoop": 100
}
}
(取决于日志记录提供商。)
我相信这是这个特殊库的内置字符串格式。
它看起来像 C# 内插字符串,但不是 C# 内插字符串。库本身附加字符串和参数。
_logger.LogInformation("Queued Background Task {Guid} is running. " +
"{DelayLoop}/3", guid, delayLoop);
这种字符串格式是什么?换句话说,它叫什么,它在哪里记录?是 .NET 还是需要第三方库?
它是 ASP.NET 核心日志记录 - 或者更一般地说,通过 Microsoft.Extensions.Logging.Abstractions
进行日志记录。
虽然它看起来有点像 C# 内插字符串文字,但消息实际上是由日志记录基础结构格式化的。字符串是 message template。消息模板中指定的名称完全独立于稍后提供的表达式 - 但占位符的 order 应为所提供值的顺序。
这允许日志记录提供提取 key/value 对以执行结构日志记录...因此例如您 可以 以 [=29= 中的日志条目结束] 像这样:
{
"message": "Queued Background Task 1234-5678[...] is running. 100/3",
"properties": {
"Guid": "1234-5678[...]",
"DelayLoop": 100
}
}
(取决于日志记录提供商。)
我相信这是这个特殊库的内置字符串格式。 它看起来像 C# 内插字符串,但不是 C# 内插字符串。库本身附加字符串和参数。