À partir d'Android 5, le système intégré au noyau bûcheron Le conducteur est déprécié qui a exposé les tampons de l'anneau par /dev/log/*
dispositifs de caractères. A la place, un démon de journalisation en espace utilisateur nommé logd gère les tampons "main", "system", "radio", "events", et "crash". Des tampons optionnels "security" (par exemple pour adb shell
/ push
/ pull
logging) et sur userdebug
construit le "noyau" (pour klogd
) et "stats" (pour les statistiques des journaux) ont été ajoutés plus tard. logd
couvre principalement les fonctionnalités de son homologue de bureau syslogd mais aussi klogd et partiellement auditd pour obtenir les journaux du sous-système SELinux du noyau. Le comportement du démon de journalisation est contrôlé à travers différents éléments propriétés .
Les applications et les processus natifs écrivent leurs journaux dans les tampons appropriés par l'intermédiaire des sockets. /dev/socket/logdw
(en faisant usage de liblog fonctions). logcat
La commande lit les tampons de /dev/socket/logdr
tout en contrôlant le démon et les tampons grâce à /dev/socket/logd
prise. Utilisez -g
/ -G
options pour obtenir et définir la taille des tampons individuels :
-g, --buffer-size
Get the size of the ring buffer.
-G <size>, --buffer-size=<size>
Set size of log ring buffer, may suffix with K or M.
Il existe également une option dans les Options du développeur : Taille des tampons de l'enregistreur (qui définit également la propriété persist.logd.size
) pour définir la même taille pour tous les tampons.
persist.logd.size
est lu à partir de /data/property/
qui n'est pas disponible à moins que /data
est monté et décrypté (en cas de FDE). Mais parfois, les tampons peuvent déborder même avant cela, la solution est donc de mettre ro.logd.size
(par default.prop
/ build.prop
ou directement dans certains *.rc
) avant le logd
est lancé.