Woordenlijst/Processen die je tegenkomt

logd

Ook: centraal logsysteem

Kort antwoord

logd is het macOS-proces dat het centrale logboek draait: het systeembrede verslag van wat macOS en je apps melden terwijl ze draaien. Elk proces geeft zijn logberichten aan logd, dat ze comprimeert, recente berichten in het geheugen houdt en de rest opslaat in een logarchief op de schijf, waar de Console-app en de opdracht log in Terminal ze lezen.

Er is één logd, het draait als root, en launchd start het als de Mac opstart. Sinds macOS Sierra gaan de meeste berichten niet meer naar tekstbestanden in /var/log. Apps geven ze aan logd, dat ze in een gecomprimeerde binaire indeling bewaart in /var/db/diagnostics, met de vaste tekst van elk bericht in /var/db/uuidtext. Daarom lees je het logboek met Console of de opdracht log en niet door een bestand te openen.

Het CPU- en schijfgebruik volgt hoeveel de rest van de Mac logt. Op een rustige Mac gebruikt het een fractie van een procent. Staat logd bovenaan de lijst, dan ligt het bijna nooit aan logd zelf: een ander proces schrijft veel sneller berichten dan normaal, en logd doet het werk om ze op te slaan.

Waarom logd zoveel CPU of schijf gebruikt

Een app of achtergrondproces logt in een lus. Een proces dat vele keren per seconde mislukt en het opnieuw probeert, zoals een netwerkclient die zijn server niet kan bereiken, een vastgelopen synchronisatie of een driver die steeds dezelfde fout meldt, kan honderdduizenden berichten per minuut schrijven. logd comprimeert en bewaart ze allemaal, en zijn CPU en ‘Bytes geschreven’ stijgen mee.

Extra logging die is ingeschakeld om een probleem op te sporen, heeft hetzelfde effect. Een loggingprofiel dat voor een bugmelding is geïnstalleerd, of een wijziging met de opdracht log config, laat logd berichten opslaan die het normaal alleen in het geheugen houdt.

Wat je eraan doet

Zoek het proces dat het logboek overspoelt en pak dat proces aan, niet logd. In Terminal zet log stats --last 5m processen op volgorde van hoeveel ze in de afgelopen vijf minuten hebben gelogd. Stop of werk de app bovenaan bij, of herstart de Mac als het een vastgelopen achtergrondproces is.

Heb je een loggingprofiel geïnstalleerd dat je niet meer nodig hebt, verwijder het dan in Systeeminstellingen → Algemeen → Apparaatbeheer. logd stoppen helpt niet: macOS start het meteen opnieuw, en het proces dat het logboek overspoelt, gaat gewoon door.

Zo vind je het proces dat het logboek overspoelt

logd doet het opslaan, dus de nuttige vraag is wie er schrijft. Activiteitenweergave laat de kosten zien en Terminal de boosdoener.

  1. Open Activiteitenweergave, klik op het tabblad CPU, kies ‘Weergave’ → ‘Alle processen’ en typ logd in het zoekveld. Noteer de ‘% CPU’.
  2. Klik op het tabblad Schijf en let op ‘Bytes geschreven’ van logd. Een getal dat snel stijgt, betekent dat het een stortvloed aan berichten naar de schijf schrijft.
  3. Maak het zoekveld leeg en sorteer het tabblad CPU op ‘% CPU’. Het proces dat het logboek overspoelt, is vaak zelf ook druk, en start misschien steeds opnieuw, elke keer met een nieuwe PID.
  4. Open Terminal en voer log stats --last 5m uit. Onder processes staan de processen die in de afgelopen vijf minuten het meest hebben gelogd, met hun aantal gebeurtenissen en bytes. WindowServer en een paar andere systeemprocessen loggen op elke Mac veel, dus zoek naar een proces met een ongewoon groot aandeel, of een dat inactief hoort te zijn.
  5. Om te lezen wat dat proces zegt, voer je log show --last 5m --predicate 'process == "Name"' uit, met de procesnaam in plaats van Name. Om het live te volgen, gebruik je log stream met hetzelfde predicaat, en druk je op Control-C om te stoppen.

logd: normaal of een probleem?

Normaal: logd blijft ruim onder een paar procent CPU, met korte stijgingen als de Mac opstart, uit de sluimerstand komt of als veel apps tegelijk openen.

Het bekijken waard: logd staat minutenlang bovenaan de CPU-lijst, of ‘Bytes geschreven’ blijft snel groeien terwijl je weinig doet. Dit zijn de gebruikelijke oorzaken:

  • Een proces dat mislukt en het in een korte lus opnieuw probeert, zoals een netwerkclient die zijn server niet kan bereiken of een synchronisatie die vastzit.
  • Een helper die crasht en meteen opnieuw wordt gestart, en elke keer dezelfde start en dezelfde fout logt.
  • Debug- of info-logging die is ingeschakeld met log config, of door een loggingprofiel dat voor een bugmelding is geïnstalleerd.
  • Een app waarbij uitgebreide logging in de eigen instellingen is ingeschakeld, of een testversie van een app die alles logt.
  • Console die blijft streamen, of een tool die steeds het live logboek leest. Die kosten zie je vooral bij diagnosticd, de partner van logd.

Het logboek lezen in Console

Console, in Apps → Hulpprogramma’s, toont hetzelfde logboek in een venster. Klik op ‘Start’ in de knoppenbalk om berichten te zien terwijl ze binnenkomen, en typ een procesnaam in het zoekveld om alleen de berichten te tonen die het noemen. Vult één proces het scherm sneller dan je kunt lezen, dan heb je gevonden waar logd mee bezig is.

Stop het streamen als je klaar bent. Zolang Console het live logboek toont, doen diagnosticd en de processen die loggen extra werk, en dat is precies wat je niet wilt op een Mac die al druk is.

Vragen die mensen stellen

Wat is logd op de Mac?

Het macOS-proces achter het centrale logboek. Elke app en elk systeemproces stuurt zijn logberichten naar logd, dat ze comprimeert en opslaat, zodat Console en de opdracht log ze kunnen tonen.

Waarom gebruikt logd veel CPU?

Bijna altijd omdat een ander proces in een lus logberichten schrijft, en logd ze allemaal moet opslaan. Voer log stats --last 5m uit in Terminal om te zien welk proces het meest logt.

Kan ik de logboeken van logd verwijderen?

Dat kan, maar er is zelden reden voor. macOS ruimt oude berichten zelf op als het logarchief zijn maximale grootte bereikt, dus het groeit niet eindeloos. Moet je het toch leegmaken, dan verwijdert sudo log erase --all de opgeslagen berichten, en daarmee ook de geschiedenis die jij of Apple Support nodig hebben om een probleem te onderzoeken. Verwijder /var/db/diagnostics of /var/db/uuidtext niet zelf.

Wat is diagnosticd op de Mac?

Een ander deel van het centrale logsysteem. logd bewaart berichten, en diagnosticd levert ze live aan Console en aan log stream. Het gebruikt alleen meer CPU zolang een van die twee het live logboek toont.

Kan ik logd veilig stoppen?

Het kan geen blijvende schade, want macOS start het meteen opnieuw, maar het helpt ook niet. Het proces dat het logboek overspoelde, gaat gewoon door, en logd pakt het werk weer op zodra het opnieuw is gestart.

Gerelateerd

Op zoek naar iets beters dan Activiteitenweergave? Bekijk de beste alternatieven voor Activiteitenweergave op de Mac, of blader door alle begrippen in de woordenlijst.