ASP.NET Core MVC 2.0部署IIS后,ILogger日志写入位置咨询
ASP.NET Core MVC 2.0 IIS部署下ILogger日志的输出位置
你在代码里配置了AddConsole()和AddDebug()两个日志提供者,在IIS部署环境下,它们的日志输出路径和你预期的不太一样,具体情况如下:
控制台日志(AddConsole())
在IIS上运行ASP.NET Core应用时,控制台日志不会显示在普通的命令行窗口,也不会被写入到IIS默认的%SystemDrive%\inetpub\logs\LogFiles请求日志目录里。它默认会输出到IIS进程的标准输出流,但不会自动保存成文件。
如果要把这些日志持久化下来,你可以:
- 给站点的
web.config添加stdout重定向配置,让日志写入到指定文件:
记得要提前创建<aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />logs目录,并确保应用进程有该目录的写入权限,日志会以日期命名的文件保存在这里。 - 集成第三方日志库(比如Serilog、NLog),这类库提供了直接写入文件的日志提供者,配置起来更灵活。
Debug日志(AddDebug())
这个提供者的日志只会输出到调试器的输出窗口——只有当你用Visual Studio远程附加到IIS上的应用进程进行调试时,才能在VS的“输出”面板里看到这些日志内容。如果没有附加调试器,这些日志就会丢失,不会被保存。
补充说明
你检查的%SystemDrive%\inetpub\logs\LogFiles是IIS自身的请求访问日志目录,只记录HTTP请求相关信息,不会包含你用ILogger输出的自定义日志内容。
内容的提问来源于stack exchange,提问作者Bob5421
相关产品推荐
相关产品推荐

