如何让Azure AppService系列日志按单条日志生成条目而非逐行生成?
Azure App Service 日志合并配置方案
各类日志的处理方式
AppServiceConsoleLogs
这类日志的采集机制默认是逐行捕获,无法直接通过平台配置改为按完整条目生成,只能通过Kusto查询逻辑合并多行内容:
- 若日志以时间戳作为每条完整日志的起始标记,可使用
parse_multi_line函数分组合并:AppServiceConsoleLogs | order by TimeGenerated asc | parse_multi_line(startofline(TimeGenerated)) | project TimeGenerated, MergedLog = strcat_array(LogEntry, "\n") - 若日志有特定的起始前缀(如
[ERROR]、[INFO]),可替换匹配规则为startswith(LogEntry, "[ERROR]"),精准识别完整日志的起始行。
AppServiceHTTPLogs
这类日志默认以单个HTTP请求为单位生成单条目,无需额外配置。若出现拆分情况,检查App Service日志配置中的「HTTP日志」格式设置,确保自定义日志格式未包含换行符,保持单行结构。
AppServiceAuditLogs
审计日志默认按单个操作事件生成单条目,不存在逐行拆分的问题。若出现异常拆分,检查Diagnostic Settings中的日志导出配置,确认未启用不必要的行分割规则。
AppServicePlatformLogs
部分平台日志(如应用启动的ASCII艺术、进程日志)可能存在多行分散的情况,可通过时间窗口分组合并:
AppServicePlatformLogs | where Category == "AppServiceConsoleLogs" | order by TimeGenerated asc | session_window(10s) // 根据实际日志间隔调整时间窗口 | project TimeGenerated, MergedLog = strcat_array(LogEntry, "\n")
内容的提问来源于stack exchange,提问作者eiu165
相关产品推荐
相关产品推荐

