NLog容器名称格式

NLog container name format

当容器名称有'/'时,NLog 不工作,没有任何异常吗? 我的应用程序的一个地方有以下代码:

    _log.AddLog("TestController", "Just test", LogLevel.INFO);

它工作正常(写入我的 Azure Table 存储)。但是我在另一个地方有以下代码:

                _log.AddLog("PricingController/PaymentCreditCard", p_ex.Message, LogService.LogLevel.WARN);

没有任何 error/exception 就无法工作。就是什么都不写。我花了大约 1 小时来搜索原因,发现没有“/”就可以了。我已阅读 NLog 文档,但没有在容器名称中找到任何关于斜线的字样。或者是写入 Azure Table 存储的包装器问题?

你写的是Azure Table Storage,Azure Table Storage没有容器的概念,结构很简单:storage account > Table > Entity,找到更多信息 here。因此,您需要指定 table 名称而不是容器名称,并且 table Azure 名称 Table 存储不允许使用“/”斜杠。我建议您仔细检查名称,我认为您可能指定了一个 blob 容器,因此它不会起作用。

正如 Gaurav Mantri 上面所说,问题出在 PartitionKey 中,其中符号 '/' 被拒绝 https://msdn.microsoft.com/en-us/library/azure/dd179338.aspx"Characters Disallowed in Key Fields"