【发布时间】:2019-01-18 12:20:22
【问题描述】:
我在 Azure 应用服务上运行网站和 Web 作业,我想启用 NLog 内部调试来解决一些日志记录问题。在我的 NLog 配置代码中,我这样做:
InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = "nlog.txt";
在开发过程中本地运行时,nlog.txt 会显示在应用程序二进制目录 (bin) 中。在 Azure 上它不显示。假设可能是文件系统权限问题,我将代码更改为:
InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = @"d:\logfiles\nlog.txt";
Azure 应用服务保证d:\logfiles\ 目录是可写的。但是仍然没有nlog.txt 文件。
想法?
【问题讨论】:
-
您是否尝试从您的应用程序写入目录
d:\logfiles\test.txt。只是为了看看你的应用程序是否有适当的权限? -
@Rolf 是的 - 我把所有的日志文件都写在那里。
-
确保在创建任何 Logger 对象之前配置
InternalLogger,即使是 Program.cs 类中可能存在的静态对象。 -
更正 - 我的意思是 `d:\home\logfiles`。我的代码是正确的,但我在这里写错了。
标签: c# azure logging nlog azure-app-service-envrmnt