限制 Windows CBS.log 详细程度,设置日志级别,停止百兆字节信息疯狂

限制 Windows CBS.log 详细程度,设置日志级别,停止百兆字节信息疯狂

在 Windows 7(家庭高级版 64 位)上,数百兆字节的日志没有人会关心阅读的内容被写入C:\Windows\Logs\CBS\CBS.log。请看,我们正在计算这里的行数:

$ dir C:\Windows\Logs\CBS\CBS.log
03.10.2015  16:21       726.097.704 CBS.log
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c ", Info"
2990118
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c /v ", Info"
102

简单来说,CBS 日志文件(CBS 是基于组件的服务,别名受信任的安装程序, 看了解基于组件的服务,2008 年 4 月,Microsoft Technet) 目前占用了 700 MB,其中 200 MB 是在过去 30 分钟内写入的,第一条记录源自 9 天前。

总共有近 300 万个条目,并且几乎全部都在日志级别信息。请注意,这是一种人类可读的日志文件格式,显然不适合机器处理。不知道你是怎么想的,但我应该费心去考虑 300 万行信息默认情况下,我认为这近乎荒谬。

我想要这个停止因为磁盘和 CPU 活动除了没有其他用途之外不必要地减慢系统速度

所以:如何将日志级别设置为警告或者错误这是在哪里记录的?

另外:想象一下,你不用费力地浏览数百兆的信息(仅一周多一点的时间)你只能保留~100错误线条?这难道不合理吗?实际上还能为故障排除提供线索?然后你仍然可以选择打开信息以防出现不明显的安装问题。

更新:

看了评论,我觉得我的问题表述得不够清楚。不是询问如何使用命令行实用程序过滤巨大的日志文件 - 因为我已经知道如何做到这一点。我也不是询问如何以日志轮换的方式处理日志文件——因为当文件达到某个未知的阈值时,Windows 会自行执行此操作(尽管你会发现人们问为什么文件达到 20GB)我我问只是如何阻止这种疯狂的百兆字节记录发生首先,可能是设置日志级别高于某物信息。我就是找不到关于如何设置日志级别的文档,可能是因为它不公开存在。但一定有办法,因为任何像样的软件都提供了设置日志级别的方法。

更新 2:

请参阅给出的答案。注册表设置似乎生效并完全关闭日志。这没问题,而且比当前默认设置好得多。为了进行注册表编辑,您需要修复权限 - 请参阅附录。

附录:Component Based Servicing注册表项的权限

当您尝试设置EnableLog为时0,您可能会注意到您没有写入权限HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing以及其下的内容。您需要进入“编辑»权限” regedit,然后取得所有权,然后才允许进行编辑:

取得所有权并授予自己写入权限

答案1

作为部分答案,这里是完全停止日志记录的设置:在注册表中,导航到

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing]

并设置EnableLog 0。资料来源:https://technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS

答案2

即使在几乎“未”清理任何内容的情况下,cleanmgr 也会在 CBS 日志中填充大约 150-200Mb 的数据,因此不是清理,而是填满您的磁盘。

我发现停止 TrustedInstaller 服务后可以清除 CBS 日志,之后重新启动 Windows Module Installer 将再次启动该服务。请记住,Microsoft 在一些调试程序中会使用该日志。

相关内容