无法在 Azure 应用服务上生成日志 NLog 内部日志文件

How*_*amp 3 c# logging nlog azure azure-app-service-envrmnt

我在 Azure 应用服务上运行网站和 webjobs,我想启用 NLog 内部调试来解决一些日志记录问题。在我的 NLog 配置代码中,我这样做:

InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = "nlog.txt";
Run Code Online (Sandbox Code Playgroud)

在开发过程中本地运行时,nlog.txt显示在应用程序二进制目录 ( bin) 中。在 Azure 上它不显示。假设可能是文件系统权限问题,我将代码更改为:

InternalLogger.LogLevel = LogLevel.Trace;
InternalLogger.LogFile = @"d:\logfiles\nlog.txt";
Run Code Online (Sandbox Code Playgroud)

Azure 应用服务保证d:\logfiles\目录可写。然而还是没有nlog.txt文件。

想法?

Iva*_*ang 5

其实LogFiles文件夹D:\home在Azure下(你说的文件路径是. d:\logfiles\,所以我也尝试直接LogFilesD:drive下创建文件夹,但是出现500内部服务器错误)。

请尝试将值更改d:\home\LogFiles\nlog.txt为 InternalLogger.LogFile,例如InternalLogger.LogFile= @"d:\home\LogFiles\nlog.txt"

使用下面的代码可以看到azure生成的nlog.txt:

 InternalLogger.LogLevel = LogLevel.Trace;
 InternalLogger.LogFile = @"d:\home\LogFiles\nlog.txt";
 InternalLogger.Log(LogLevel.Trace, "a text message from here....");
Run Code Online (Sandbox Code Playgroud)

测试结果可以参考下图。

在此处输入图片说明