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 タグです。
<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 Diagnostics がログ ファイルを検索し、NLog によって書き込まれたファイルを LocalStorage に一致させる方法です。
LocalStorage タグで表されるフォルダーのルートを取得するには、nlog.config ファイル内の Target タグに何を入力すればよいですか?