.NET Framework应用部署到Azure后如何长期读写控制台日志
可行解决方案
方案1:启用应用服务诊断日志(无代码改动,最快实现)
- 操作步骤:
- 进入Azure门户对应App Service资源页,左侧菜单栏找到「应用服务日志」选项
- 开启应用程序日志(Blob存储),日志级别根据需求选择(建议选Information即可覆盖你当前用的所有Trace、Console输出),关联你账号下的存储账户,设置自定义日志保留周期(可设置为1-3650天,满足长期存储需求)
- 若需要使用类SQL的日志查询能力,回到App Service左侧菜单找到「诊断设置」,新增诊断设置,勾选
AppServiceConsoleLogs、AppServiceAppLogs两个日志类型,目标关联Log Analytics工作区 - 配置完成等待10-15分钟数据同步后,即可在「日志」界面执行查询语句获取历史日志,示例查询语句:
AppServiceConsoleLogs | where TimeGenerated > ago(7d) | order by TimeGenerated desc - 额外说明:你也可以直接进入关联的存储账户容器,下载所有历史日志的原始文本文件离线查看。
方案2:正确配置Application Insights采集日志
你之前App Insights无数据是因为未配置Trace监听器,按以下步骤配置即可:
- 给你的MVC项目安装适配.NET Framework 4.5.1的NuGet包:
Microsoft.ApplicationInsights.Web(建议2.15.x版本,更高版本不再兼容4.5.1)、Microsoft.ApplicationInsights.TraceListener - 在
web.config的<system.diagnostics>节点下添加Trace监听器配置:
<system.diagnostics> <trace autoflush="true"> <listeners> <add name="ApplicationInsightsTraceListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" /> </listeners> </trace> </system.diagnostics>
- 在
web.config的<appSettings>节点添加你的App Insights资源密钥:
<add key="InstrumentationKey" value="你的App Insights Instrumentation Key值" />
- 重新部署应用后等待10分钟,即可在App Insights的「事务搜索」或「日志」界面查询
traces表获取所有历史日志,默认保留90天,可手动调整保留周期最长至2年。
内容的提问来源于stack exchange,提问作者AskYous
相关产品推荐
相关产品推荐

