NLog 在 Azure 中不起作用
NLog doesn't work in Azure
我正在尝试将 NLog 与 Azure Web 应用程序一起使用。一切都在我的本地 PC 上运行,但是当我部署到 Azure 时它根本不起作用。
我尝试过不同的目标,例如文件和 Azure table 存储。两者在我的 PC 上都能完美运行,但在 Azure 中却不行。
我正在使用 asp.net 核心。
这是我的 table 存储的 NLog 配置。
注意:当我从本地 PC 执行程序时,此配置有效。我可以在 Azure table 存储中看到条目。
<?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>
我注意到 Azure 中的配置文件 NLog.config 没有更新(或被覆盖)。
将配置文件重命名为不同的名称解决了我的问题。
但是,我认为这只是一个 解决方法 。
Azure中的NLog.config好像就是这个例子,根本没有目标。
我正在尝试将 NLog 与 Azure Web 应用程序一起使用。一切都在我的本地 PC 上运行,但是当我部署到 Azure 时它根本不起作用。 我尝试过不同的目标,例如文件和 Azure table 存储。两者在我的 PC 上都能完美运行,但在 Azure 中却不行。 我正在使用 asp.net 核心。
这是我的 table 存储的 NLog 配置。
注意:当我从本地 PC 执行程序时,此配置有效。我可以在 Azure table 存储中看到条目。
<?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>
我注意到 Azure 中的配置文件 NLog.config 没有更新(或被覆盖)。 将配置文件重命名为不同的名称解决了我的问题。 但是,我认为这只是一个 解决方法 。
Azure中的NLog.config好像就是这个例子,根本没有目标。