在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是基于组件的服务的缩写,别名Trusted Installer,请参阅了解基于组件的服务,2008年4月,Microsoft Technet),占用700 MB的空间,其中200字节是在最近30分钟内写入的,第一个条目来自9天前。
总共有将近300万个条目,几乎所有条目都在loglevel Info上。请注意,这是一种人类可读的日志文件格式,显然不适用于机器处理。不了解您,但是我默认情况下应该打扰考虑300万行信息的想法令我感到有点荒唐。
我希望此操作停止,因为磁盘和CPU活动除了不必要地降低系统速度之外没有其他用途。
因此:如何将日志级别设置为“ 警告”或“ 错误”?这在哪里记录?
加:想像一下,如果不浪费数百兆的Info(一周多一点),您只会保留〜100条Error行?难道不是很有意义,实际上可以提供故障排除的线索吗?然后,您仍然可以选择打开信息,以防出现非显而易见的安装问题。
更新:
阅读评论后,我似乎并没有足够清楚地表达我的问题。我不是在问如何使用命令行实用程序过滤大型日志文件-因为我已经知道该怎么做。我也不是在问如何以日志轮换的方式处理日志文件-因为Windows在文件达到某个未知阈值时会自行执行此操作(尽管您会发现有人问为什么文件达到20个演出)。我要问的只是,如何通过首先将日志级别设置为高于Info的级别来阻止这种疯狂的十亿字节日志记录的发生。我只是找不到有关如何设置日志级别的文档,可能是因为它不公开存在。但是必须有一种方法,因为任何不错的软件都提供了一种设置日志级别的方法。
更新2:
请参阅给出的答案。注册表设置似乎生效并完全关闭了日志。可以,并且默认值比当前值好得多。为了编辑注册表,您需要修复权限-请参阅附录。
附录:Component Based Servicing
注册表项的权限
尝试将其设置EnableLog
为时0
,您可能会注意到您对该目录没有写权限,也没有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing
下面的内容。您需要进入“编辑»权限” regedit
,然后获得所有权,然后才能进行编辑: