【发布时间】:2016-02-28 23:55:33
【问题描述】:
当容器名称没有任何异常时,NLog 是否不起作用? 我的应用程序的一个地方有以下代码:
_log.AddLog("TestController", "Just test", LogLevel.INFO);
它工作正常(写入我的 Azure 表存储)。但我在另一个地方有以下代码:
_log.AddLog("PricingController/PaymentCreditCard", p_ex.Message, LogService.LogLevel.WARN);
如果没有任何错误/异常,它就无法工作。就是什么都不写。我花了大约 1 个小时来搜索原因并发现,没有 '/' 它可以工作。我已阅读 NLog 文档,但没有在容器名称中找到任何关于斜杠的字样。还是写入 Azure 表存储的 wrapper 的问题?
【问题讨论】:
-
我没有将 nlog 与 azure 表存储一起使用,所以我不知道它是如何工作的,但我假设
"PricingController/PaymentCreditCard"在表中以PartitionKey或RowKey的形式出现。如果是这种情况,失败的原因可能是PartitionKey或RowKey值中存在/字符。它不是PartitionKey或RowKey值中的有效字符。有关不允许使用的字符列表,请参阅此链接:msdn.microsoft.com/en-us/library/azure/dd179338.aspx。 -
你是对的,它被写入分区键。只是包装器的问题 - 它不会抛出任何异常,所以,我什至不知道丢失的记录
标签: azure logging nlog azure-table-storage slash