【发布时间】:2018-12-03 09:52:16
【问题描述】:
我正在使用 Nlog 和 Azure 表存储,我的日志写入 (LoggerExtensions.cs) 如下所示。
TestMessageAction = LoggerMessage.Define<string>(
LogLevel.Error,
new EventId(1000, nameof(TestMessage)),
"Test Error Message (Key = {key})");
public static void TestMessage(this ILogger logger, string key, Exception ex)
{
TestMessageAction(logger, key, ex);
}
如果目标是文件或数据库,这可以正常工作。在 azure 表存储中无法正常工作。
例子:
对于上面相同的代码,我在文件下面看到
Test Error Message (Key = ef5bbee2-ac68-4dee-8497-54d5d9691a92)
但在 Azure 表存储中
Test Error Message (Key = key)
Azure 表存储的 Nlog 目标:Nlog.config
<target xsi:type="AzureTableStorage"
name="NLogAzureTable"
layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}"
connectionString="******"
tableName="ServiceLogs"
logTimeStampFormat="O" />
<rules>
<logger name="*" minlevel="Info" writeTo="NLogAzureTable"></logger>
</rules>
如果我不使用 LoggerMessage,Azure 日志看起来还不错。
_logger.LogInfo($"Test Info : {key}");
写
测试信息:ef5bbee2-ac68-4dee-8497-54d5d9691a92
请让我知道我在这里缺少什么。
谢谢。
【问题讨论】:
标签: logging nlog azure-table-storage string-interpolation