我正在尝试将NLog与Azure Web应用程序一起使用。一切都可以在我的本地PC上运行,但是当我部署到Azure时根本无法运行。 我尝试了不同的目标,例如文件和Azure表存储。两者都可以在我的PC上完美运行,但不能在Azure中运行。 我正在使用asp.net核心。
这是我用于表存储的NLog配置。
注意:当我从本地PC执行程序时,此配置有效。我可以在Azure表存储中看到条目。
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
>
<extensions>
<add assembly="NLog.Extensions.AzureTableStorage"/>
</extensions>
<targets>
<target xsi:type="AzureTableStorage" name="allfile"
PartitionKey="nlog-all-${date}.${logger}"
RowKey="${ticks}.${guid}"
ConnectionString="**REMOVED**"
tableName="**REMOVED**"
layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
<target xsi:type="AzureTableStorage" name="ownFile"
PartitionKey="nlog-own-${date}.${logger}"
RowKey="${ticks}.${guid}"
ConnectionString="**REMOVED**"
tableName="**REMOVED**"
layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
<target xsi:type="Null" name="blackhole" />
</targets>
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile" />
</rules>
</nlog>
答案 0 :(得分:0)
我注意到配置文件 NLog.config 在Azure中未得到更新(或正在被覆盖)。 将配置文件重命名为其他文件解决了我的问题。 但是,我认为这只是解决方法。
Azure中的 NLog.config 似乎是一个例子,并且根本不包含任何目标。
答案 1 :(得分:0)
似乎存在一些转换问题,与Azure网站无关。
我建议采用以下方法更永久地修复它: