在 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 在一些调试程序中会使用该日志。