我有一个ASP.NET Web API作为 Web应用部署在Azure 应用服务上。
我已打开应用程序服务的诊断日志记录。
从API代码内,当我尝试写日志消息到一个文件,显然,文件系统相对路径"."
解析为"D:\Windows\system32\"
在目标机器/ VM /容器上。< / p>
我知道这是因为我有我的测试操作方法设置打印整个例外如下:
[HttpGet]
[Route("~/test/log")]
public async Task<string> LogAsync()
{
try
{
System.IO.File.WriteAllText(".\\log.txt", "Test log entry.");
return await Task.FromResult("Passed");
}
catch(Exception ex)
{
return ex.ToString();
}
}
它返回以下结果:
System.UnauthorizedAccessException:访问路径 'D:\ Windows \ system32 \ log.txt'被拒绝。在 System.IO .__ Error.WinIOError(Int32 errorCode,字符串mayFullPath)
在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess 访问,Int32权限,布尔useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,字符串 MSGPATH,布尔bFromProxy,布尔useLongPath,布尔checkHost)
在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess 访问,FileShare共享,Int32 bufferSize,FileOptions选项,字符串 MSGPATH,布尔bFromProxy,布尔useLongPath,布尔checkHost)
在System.IO.StreamWriter.CreateFile(字符串路径,布尔值附加, System.IO.StreamWriter..ctor(布尔路径, 布尔值附加,编码编码,Int32 bufferSize,布尔值 checkHost)位于System.IO.StreamWriter..ctor(字符串路径,布尔值) 追加,编码方式进行编码)在 System.IO.File.InternalAppendAllText(字符串路径,字符串内容, System.IO.File.AppendAllText(字符串路径, 字符串内容)在 My.Web.API.Controllers.TestController.d__5.MoveNext()在 C:\ My.Web.API \ My.Web.API \控制器\ TestController.cs:线125
答案 0 :(得分:1)
当前,您正在尝试将日志保存在D:\ Windows \ System32文件夹下,这是不允许的,因为您遇到访问被拒绝的错误。 请尝试将路径更改为D:\ Home \ Logfiles \ Application,这是应用程序日志记录的源目录。
存储日志的目录结构如下:
应用程序日志-/ LogFiles / Application /。此文件夹包含一个或多个文本文件,其中包含由应用程序日志记录产生的信息。
失败的请求跟踪-/ LogFiles / W3SVC ########## /。该文件夹包含一个XSL文件和一个或多个XML文件。请确保将XSL文件下载到与XML文件相同的目录中,因为XSL文件提供了在Internet Explorer中查看时格式化和过滤XML文件内容的功能。
详细的错误日志-/ LogFiles / DetailedErrors /。此文件夹包含一个或多个.htm文件,这些文件可提供有关发生的任何HTTP错误的广泛信息。
Web服务器日志-/ LogFiles / http / RawLogs。此文件夹包含一个或多个使用W3C扩展日志文件格式设置的文本文件。
部署日志-/ LogFiles / Git。此文件夹包含由Azure App Service使用的内部部署过程生成的日志,以及Git部署的日志。您还可以在D:\ home \ site \ deployments下找到部署日志。
也仅用于更新,对于应用程序日志记录,您可以临时打开文件系统选项以进行调试。此选项将在12小时后自动关闭。您还可以打开Blob存储选项以选择要向其写入日志的Blob容器。
让我知道您是否需要其他任何信息。
当您从KUDU中看到它时,这就是您的Azure应用程序的层次结构