我使用 web.config 指向的 nlog.config 使用 NLog 进行日志记录设置。在这个 nlog.config 文件中,我需要放置这样的一行:
fileName="ApplicationLog.txt"
我希望日志条目转到此文件。
我的 ServiceDefinition.csdef 文件包含以下内容:
<LocalResources>
<LocalStorage name="DiagnosticStore" sizeInMB="20000" cleanOnRoleRecycle="false" />
<LocalStorage name="LogStorage" cleanOnRoleRecycle="false" sizeInMB="8192" />
</LocalResources>
我希望日志记录转到 LogStorage 指向的根目录的子文件夹。在已部署的 Azure VM 上是这样的:
C:\Resources\Directory\ec1b400c7e58640a8b874035ba9196c.Services.LogStorage\logs/ApplicationLog.txt
如果我将其硬编码到 nlog.config 文件中,则日志将成功写入那里。这是我在配置文件中的目标标签:
<target name="App" xsi:type="File"
lineEnding="Default" autoFlush="true" keepFileOpen="false"
fileName="ApplicationLog.txt">
当 fileName 设置为 ApplicationLog.txt 时,该文件不会出现在服务器上的任何位置。不写入日志。
我的 diagnostics.wadcfg 包含神奇的时期:
<DataSources>
<DirectoryConfiguration container="telemetry-logs" directoryQuotaInMB="4096">
<LocalResource name="LogStorage" relativePath=".\archive" />
</DirectoryConfiguration>
</DataSources>
这就是 Azure 诊断查找日志文件的方式,将 NLog 写入的文件匹配到我的 LocalStorage。
我在 nlog.config 文件中的 Target 标记中放置了什么来获取由 LocalStorage 标记表示的文件夹的根目录?