Azure Web Jobs日志异常:配置应用服务日志后仍无法正常记录
针对你遇到的「达到最大输出行数限制,日志停止记录」问题,即使已配置App Service Logs仍未解决,可以尝试以下排查和修复步骤:
确认App Service Logs的完整配置
确保不仅开启了「文件系统日志」,还要检查:- 日志级别设置为「Verbose」或对应需要的级别,避免低级别过滤导致日志被截断
- 日志配额(Quota)设置足够大(比如至少100MB),保留期(Retention Period)设置合理(比如7天以上)
- 确认「应用日志记录」的目标包含「文件系统」,如果只选了Application Insights,控制台输出仍可能受限制
调整Web Job的日志输出方式
如果你的Web Job用Console.WriteLine直接输出日志,建议切换到Serilog、NLog这类正式日志框架,并配置将日志写入App Service的日志系统。直接控制台输出的日志可能受限于Web Job的默认输出行数限制,框架日志会绕过这个限制,直接写入指定存储。通过Kudu控制台查看实际日志文件
登录Kudu控制台(https://<your-app-name>.scm.azurewebsites.net),导航到以下路径检查日志:- 持续Web Job日志:
D:\home\data\jobs\continuous\<your-job-name> - App Service应用日志:
D:\home\LogFiles\application
如果日志文件在持续更新,说明只是Web Job的控制台预览被截断,实际日志是完整的;如果文件也停止写入,需要排查Web Job进程是否异常。
- 持续Web Job日志:
检查Web Job的settings.job配置
查看Web Job根目录下的settings.job文件,是否存在max_log_lines这类自定义限制参数。如果有,将其调整为更大的值(比如100000)或者删除该参数,改用App Service的全局日志配置。验证App Service文件系统存储
在Kudu控制台的「Debug console」中运行dir D:\home,查看剩余空间是否充足。如果文件系统已满,即使配置了日志保留期,也无法继续写入新日志,需要清理旧日志或扩大存储配额。检查Web Job进程状态
在Azure门户的Web Job详情页,查看「运行状态」是否为「Running」。如果进程意外退出,日志自然会停止记录,可以查看Kudu中D:\home\LogFiles\eventlog.xml的进程退出日志排查原因。
内容的提问来源于stack exchange,提问作者jay

