Ogranicz gadatliwość Windows CBS.log, ustaw poziom dziennika, zatrzymaj szaleństwo informacji hectomegabyte

18

W systemie Windows 7 (Home Premium 64-bitowy) zapisywane są setki megabajtów logowania, których nikt nie będzie chciał czytać C:\Windows\Logs\CBS\CBS.log. Spójrz, liczymy linie tutaj:

$ 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

Mówiąc wprost, plik dziennika CBS (skrót od CBS to skrót od Component Based Services , alias Trusted Installer , patrz Understanding Component-Based Servicing , kwi 2008, Microsoft Technet ) w tej chwili zajmuje 700 MB, z czego 200 napisanych w ciągu ostatnich 30 minut , z pierwszym wpisem pochodzącym z 9 dni temu.

W sumie jest to prawie 3 miliony wpisów i prawie całość w loglevel Info . Pamiętaj, że jest to czytelny dla człowieka format pliku dziennika, najwyraźniej nie do przetwarzania maszynowego. Nie wiem o tobie, ale myśl, że powinienem zawracać sobie głowę wzięciem pod uwagę 3 milionów linii Info , wydaje mi się granicząca z absurdem.

Chcę, aby to się skończyło, ponieważ aktywność dysku i procesora nie służy żadnemu celowi poza niepotrzebnym spowalnianiem systemu .

Więc: Jak ustawić poziom dziennika na Ostrzeżenie lub Błąd ? Gdzie to jest udokumentowane?

Plus: Wyobraź sobie, że zamiast brnąć przez setki megabajtów informacji (przez nieco ponad tydzień) zachowałbyś tylko linie błędu ~ 100 ? Czy to nie miałoby sensu i faktycznie dałoby wskazówki w rozwiązywaniu problemów? Będziesz wtedy mieć możliwość włączenia Info w przypadku pojawienia się nieoczywistego problemu z instalacją.

Aktualizacja:

Czytając komentarze, wydaje się, że nie wypowiedziałem mojego pytania z wystarczającą jasnością. Ja nie pytając, jak filtrować humungous plik dziennika za pomocą narzędzi wiersza poleceń - bo już wiem, jak to zrobić. Ja również nie pytając, jak radzić sobie z plikami dziennika w zasadzie rotacji dziennika - ponieważ system Windows będzie to zrobić na własną rękę, kiedy plik osiągnie jakąś nieznaną próg (choć znajdziesz ludzi pyta , dlaczego plik osiągnie 20 koncertów ). Co ja pytam po prostu , jak zatrzymać ten szalony rejestrowanie hectomegabyte z występujących w pierwszej kolejności, prawdopodobnie przez ustawienie poziomu dziennika na coś wyżej niż Info. Po prostu nie mogę znaleźć dokumentacji dotyczącej ustawiania poziomu dziennika, być może dlatego, że nie istnieje on publicznie. Ale musi istnieć sposób, ponieważ każde przyzwoite oprogramowanie zapewnia sposób na ustawienie poziomu dziennika.

Aktualizacja 2:

Zobacz udzieloną odpowiedź. Ustawienia rejestru wydają się obowiązywać i całkowicie zamknąć dziennik. Co jest w porządku i znacznie lepsze domyślne niż obecne. Aby dokonać edycji rejestru, musisz naprawić uprawnienia - patrz załącznik.

Dodatek: uprawnienia do Component Based Servicingklucza rejestru

Kiedy spróbujesz ustawić EnableLogna 0, prawdopodobnie zauważysz, że nie masz dostępu do zapisu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingi rzeczy poniżej. Musisz przejść do „Edytuj» Uprawnienia ”, regedita następnie przejąć na własność, zanim będziesz mógł wprowadzać zmiany:

Przejęcie na własność i udzielenie sobie zgody na zapis

Lumi
źródło
3
+5 „szaleństwo informacyjne o hektomegabajtach”
Moab
2
Dziennik CBS można odfiltrować z wiersza polecenia, oto przykład tego, którego używam po uruchomieniu Kontrolera plików systemowych. Po uruchomieniu wyświetla odpowiednie informacje SFC do pliku tekstowego na pulpicie. "findstr / c:" [SR] "% windir% \ Logs \ CBS \ CBS.log>% userprofile% \ Desktop \ sfcdetails.tx"
Moab
@ Dzięki Tetsujin, zastanawiałem się, czy istnieją inne polecenia findstr dla innych dzienników, ale Google nic nie znalazł.
Moab
2
Uważany @Tetsujin, należy pamiętać, że poziom dziennika to tylko Info , a nie Debugowanie , co oznaczałoby zwiększoną gadatliwość. Zobacz artykuł Technet Jak włączyć pełne rejestrowanie CBS , listopad 2010 r., Przez joscon, aby dowiedzieć się, że możesz uczynić rejestrowanie jeszcze bardziej szczegółowym. Joscon stwierdza w komentarzu, że »… sposób, w jaki domyślnie jest ustawiony, jest najmniej szczegółowy w dzienniku.« To niedopuszczalne. Jest to coś, co niepotrzebnie spowalnia twój system. Nie to, czego chcą użytkownicy. Być może wystarczy edycja binarna.
Lumi,
W systemie Windows Server 2008 ostatecznie spowoduje to awarię TrustedInstaller.exe co 15 minut. A przynajmniej uważam, że to jest przyczyna; Śledzę to od jakiegoś czasu. Moja obecna próba obejścia tego problemu polega na utworzeniu pustego pliku CBS.log i usunięciu wszystkich uprawnień, odmawiając dostępu. Nie potwierdziłem jeszcze, czy to działa, ponieważ zanim zacznie się dziać, potrzeba trochę czasu.
theultramage

Odpowiedzi:

11

Częściową odpowiedzią jest ustawienie całkowitego zaprzestania rejestrowania: w rejestrze przejdź do

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

i ustaw EnableLog 0. Źródło: https://technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS

użytkownik1016274
źródło
1
Dzięki, to wydaje się działać. Po dokonaniu edycji zatrzymałem usługę TrustedInstaller, a następnie zainstalowałem aktualizację (KB3078667). Ani jedna postać nie została zarejestrowana, tak! Aby dokonać edycji, musisz przejąć na własność Component Based Servicingklucz; domyślnie tylko TrustedInstaller może pisać do niego i jego podwładnych. Zobacz zrzut ekranu dołączony do mojego pytania.
Lumi,
TrustedInstaller można znaleźć w Panelu sterowania> Narzędzia administracyjne> Usługi pod nazwą Instalatora modułów systemu Windows (win7).
Ogmios
2

Dziennik CBS jest również wypełniany przez cleanmgr około 150-200 MB danych, nawet podczas czyszczenia prawie „niczego”, wypełniając tym samym dysk zamiast czyszczenia.

Odkryłem, że dziennik CBS można wyczyścić po zatrzymaniu usługi TrustedInstaller, a następnie ponowne uruchomienie Instalatora modułów systemu Windows spowoduje ponowne uruchomienie usługi. Pamiętaj, że dziennik jest używany przez Microsoft w niektórych programach do debugowania.

użytkownik679857
źródło