Restrinja a verbosidade do Windows CBS.log, defina o nível de log, pare a loucura de informações de hectomegabytes

18

No Windows 7 (Home Premium 64 Bit), são gravadas centenas de megabytes de log em que ninguém nunca se importará de ler C:\Windows\Logs\CBS\CBS.log. Dê uma olhada, estamos contando as linhas aqui:

$ 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

Resumindo, o arquivo de log do CBS (CBS é a abreviação de Component Based Services , também conhecido como Trusted Installer , consulte Noções básicas sobre serviço baseado em componentes , abril de 2008, Microsoft Technet ) no momento ocupa 700 MB, 200 dos quais escritos nos últimos 30 minutos , com a primeira entrada decorrente de 9 dias atrás.

No total, são quase 3 milhões de entradas e quase a totalidade na Info do nível de log . Lembre-se, este é um formato de arquivo de log legível por humanos, aparentemente não para processamento de máquina. Não sei sobre você, mas a noção de que eu deveria me preocupar em levar em conta 3 milhões de linhas de informações por padrão me parece um pouco absurda.

Eu quero que isso pare porque a atividade do disco e da CPU não serve a nenhum outro propósito, além de tornar desnecessariamente lento o sistema .

Então: como faço para definir o nível de log como Aviso ou Erro ? Onde isso está documentado?

Mais: Imagine que, em vez de percorrer centenas de megas de informações (por pouco mais de uma semana), você manteria apenas as ~ 100 linhas de erro ? Isso não faria sentido e realmente forneceria pistas na solução de problemas? Você ainda teria a opção de ativar as Informações caso ocorra um problema de instalação não óbvio.

Atualizar:

Lendo os comentários, parece que não formulei minha pergunta com clareza suficiente. Estou não perguntar como filtrar o arquivo de log humungous usando utilitários de linha de comando - porque eu já sei como fazer isso. Também não estou perguntando como lidar com os arquivos de log no caminho da rotação de logs - porque o Windows fará isso sozinho quando o arquivo atingir um limite desconhecido (embora você encontre pessoas perguntando por que o arquivo atinge 20 GB ). O que estou perguntando é simplesmente como impedir que esse log hectomegabyte louco ocorra em primeiro lugar, provavelmente definindo o nível de log para algo mais alto que Info. Não consigo encontrar a documentação sobre como definir o nível do log, possivelmente porque ele não existe publicamente. Mas deve haver uma maneira, pois qualquer software decente fornece uma maneira de definir o nível de log.

Atualização 2:

Veja a resposta dada. A configuração do registro parece entrar em vigor e encerrar o log completamente. O que é bom e um padrão muito melhor do que o atual. Para fazer a edição do registro, você precisa corrigir as permissões - consulte o apêndice.

Apêndice: Permissões na Component Based ServicingChave do Registro

Quando você tenta definir EnableLoga 0, você provavelmente vai perceber que você não tem acesso de gravação para HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicinge coisas abaixo dele. Você precisa acessar "Editar» Permissões " regedite se apropriar antes de poder fazer edições:

Assuma a propriedade e conceda permissão de gravação

Lumi
fonte
3
+5 "loucura por hectomegabyte info"
Moab
2
O registro do CBS pode ser filtrado no prompt de comando; eis um exemplo de um que utilizo após executar o Verificador de Arquivos do Sistema. Quando executado, ele exibe as informações relevantes do SFC em um arquivo de texto na minha área de trabalho. "findstr / c:" [SR] "% windir% \ Logs \ CBS \ CBS.log>% userprofile% \ Desktop \ sfcdetails.tx"
Moab
@ Tetsujin obrigado, queria saber se havia outros comandos findstr para outros logs, mas o google não encontrou nada.
Moab
2
Estimado @Tetsujin, observe que o nível do log é apenas Informações , não Depuração , o que implicaria maior verbosidade. Consulte o artigo Technet Como habilitar o log detalhado do CBS , novembro de 2010, por joscon para descobrir que você pode tornar o log ainda mais detalhado. Joscon afirma em um comentário que »… a maneira como é definida por padrão é o menos detalhado que o log obtém.» Isso é inaceitável. É o tipo de coisa que torna desnecessariamente lento o seu sistema. Não é o que os usuários querem. Talvez uma edição binária funcione.
Lumi
No Windows Server 2008, isso fará com que o TrustedInstaller.exe comece a falhar a cada 15 minutos. Ou pelo menos, acredito que essa é a causa; Venho acompanhando isso há algum tempo. Minha tentativa atual de uma solução alternativa é criar um CBS.log vazio e remover todas as permissões, negando acesso. Ainda não confirmou se isso funciona, pois leva algum tempo em atividade antes de começar a acontecer.
theultramage 6/06/06

Respostas:

11

Como resposta parcial, eis a configuração para interromper o registro: no registro, navegue até

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

e definir EnableLog 0. Fonte: https://technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS

user1016274
fonte
11
Obrigado, isso parece funcionar. Após fazer a edição, parei o serviço TrustedInstaller e instalei uma atualização (KB3078667). Nenhum caractere foi registrado, sim! Para fazer a edição, você precisa se apropriar da Component Based Servicingchave; Por padrão, apenas o TrustedInstaller pode gravar nele e em seus subjacentes. Veja a captura de tela anexada à minha pergunta.
Lumi
O TrustedInstaller pode ser encontrado em Painel de Controle> Ferramentas Administrativas> Serviços, sob o nome do Instalador de Módulos do Windows (win7).
Ogmios
2

O registro CBS também é preenchido pelo cleanmgr com aproximadamente 150-200Mb de dados, mesmo limpando quase 'nada', enchendo assim o disco em vez da limpeza.

Descobri que o registro do CBS pode ser limpo após a interrupção do serviço TrustedInstaller. Reiniciar o Windows Module Installer depois iniciará o serviço novamente. Lembre-se de que o log é usado pela Microsoft em alguns programas de depuração.

user679857
fonte