IIS 10添加自定义字段后日志功能失效求助
IIS 10添加自定义请求头日志后日志停止生成的排查方案
针对添加自定义请求头字段后IIS日志停止生成的问题,可尝试以下排查步骤:
检查W3C日志字段配置
进入网站的日志记录设置,点击「选择字段」,确认自定义字段XCT未与默认字段重名,同时调整字段顺序(比如将自定义字段移至列表末尾),避免日志解析引擎出现异常。验证HttpLogging模块状态
以管理员权限打开命令提示符,执行:%windir%\system32\inetsrv\appcmd.exe list modules确认
HttpLoggingModule处于启用状态。若未启用,执行以下命令重新注册:%windir%\system32\inetsrv\appcmd.exe install module /name:HttpLoggingModule /image:%windir%\system32\inetsrv\loghttp.dll简化日志文件名格式
将日志文件名改为静态名称(例如yoursite.log),避免使用包含自定义字段变量的命名规则,部分场景下变量冲突会导致日志写入失败。检查applicationHost.config配置完整性
备份%systemroot%\system32\inetsrv\config\applicationHost.config后,查找对应网站的<logFile>节点,确认<customFields>配置格式正确,示例如下:<logFile> <!-- 其他日志配置 --> <customFields> <add logFieldName="XCT" sourceName="X-Client-Type" sourceType="RequestHeader" /> </customFields> </logFile>修复可能存在的XML格式错误(如标签未闭合)后,重启IIS服务。
测试无别名的自定义字段
暂时将自定义字段名称改为与源名称一致(即X-Client-Type),应用设置后发起请求测试日志是否生成。若恢复正常,再尝试改回XCT,排查别名是否存在兼容性问题。排除第三方模块冲突
如果网站使用了自定义HttpModule或第三方IIS模块,临时禁用这些模块后测试日志生成,排除模块拦截日志写入的可能性。
内容的提问来源于stack exchange,提问作者Vincent Boyer
相关产品推荐
相关产品推荐

