Windows自定义事件日志注册成功但evtx文件未生成如何解决?
问题原因
你上报的事件实际被写入了系统默认的Application日志通道,你配置的自定义日志通道MyCustLog未被系统事件日志服务识别,因此不会触发指定evtx文件的创建。你当前只配置了事件源层级的注册表项,缺少自定义日志通道本身的必要配置。
需补充的配置项
所有注册表操作均需要管理员权限执行:
- 先配置上层自定义日志通道的核心参数,路径为
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\MyCustLog,需新增以下键值:File(REG_SZ):填写目标evtx文件全路径,即C:\MyFolder\App1.evtx,该配置是控制日志文件存储路径的核心参数,写在事件源层级的File值不会生效Enabled(REG_DWORD):设为1,启用该自定义日志通道MaxSize(REG_DWORD):单位为字节,建议至少设为0x2000000(32MB),指定日志文件的最大容量Type(REG_DWORD):设为1,标识为标准管理类日志
- 补充事件源的必要参数,路径为
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\MyCustLog\C:/App1.exe,需新增以下键值:EventMessageFile(REG_SZ):如果没有自定义消息资源文件,可以填写系统通用消息库路径C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll(32位系统对应Framework目录),避免事件查看器显示描述缺失错误
- 配置目录权限:给
C:\MyFolder目录添加NT SERVICE\EventLog用户的完全控制权限,否则事件日志服务无权限写入文件 - 重启事件日志服务:修改注册表后不会实时生效,执行命令
net stop eventlog /y && net start eventlog重启服务后配置才会生效
验证方式
重启服务后再次调用ReportEvent上报事件,查看C:\MyFolder\App1.evtx是否生成,同时打开事件查看器,在「Windows 日志」节点下可以找到你创建的MyCustLog通道,里面会展示你上报的事件。
内容的提问来源于stack exchange,提问作者HaeRim Lee
相关产品推荐
相关产品推荐

