platform_system_core/logd
Mark Salyzyn 46d159d462 logd: klogd and Mediatek
- sniff for PID in kernel log messages if available
- properly deal with klogd watermark in face of modified output
- deal more stringently with priority tag, must have [ following
- suppress process-name stutter in tag that can happen
- do not use : to demark tag if within [ ]

Mediatek-special change that adds <printk_state>(<cpu>)[<pid>:<comm>]
as a prefix to the printk messages. Along the lines of (simplified
for entertainment purposes, YMMV):

    char tbuf[50]; /* printk prefix */
    int this_cpu = smp_processor_id();
    char state = __raw_get_cpu_var(printk_state);
    unsigned tlen = snprintf(tbuf, sizeof(tbuf), "%c(%x)[%d:%s]",
               state, this_cpu, current->pid, current->comm);

Bug: 23517551
Change-Id: I568e25c5aa6d8474835454a0e83b19c2921b7985
2015-08-26 14:57:16 -07:00
..
tests logd: deprecate TARGET_USES_LOGD 2015-07-28 09:37:07 -07:00
Android.mk Merge changes from topic 'init-rc-breakup' 2015-08-21 17:42:29 +00:00
CommandListener.cpp logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
CommandListener.h Logd: Handle unused variable and fields 2015-07-27 14:17:33 -07:00
event.logtags logd: annotate worst-UID pruned entries 2015-04-10 15:45:08 -07:00
FlushCommand.cpp logd: logtimes switch to std::list 2015-08-20 08:36:03 -07:00
FlushCommand.h logd: replace internal CLOCK_MONOTONIC use with sequence numbers 2015-03-18 12:43:23 -07:00
libaudit.c Revert "libaudit: limit to 5 selinux denials per sec" 2015-05-09 12:41:41 -07:00
libaudit.h logd: throttle SELinux denials to 20/sec 2014-11-19 13:35:36 -08:00
LogAudit.cpp logd: serialize accesses to stats helpers 2015-06-25 07:39:24 -07:00
LogAudit.h logd: auditd remove logDmesg method 2014-12-05 20:56:44 +00:00
LogBuffer.cpp logd: worst uid record watermark part deux 2015-08-24 14:04:45 -07:00
LogBuffer.h logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
LogBufferElement.cpp logd: serialize accesses to stats helpers 2015-06-25 07:39:24 -07:00
LogBufferElement.h logd: filters remove leading expire messages and rate 2015-06-05 08:05:05 -07:00
LogCommand.cpp logd: Cleanup 2015-05-12 15:51:46 -07:00
LogCommand.h logd: institute getGroups for socket credentials 2014-02-28 13:48:33 -08:00
logd.rc bundle init.rc contents with its service 2015-08-21 10:14:43 -07:00
LogKlog.cpp logd: klogd and Mediatek 2015-08-26 14:57:16 -07:00
LogKlog.h logd: klogd and Mediatek 2015-08-26 14:57:16 -07:00
LogListener.cpp logd: Cleanup 2015-05-12 15:51:46 -07:00
LogListener.h logd: initial checkin. 2014-02-26 09:52:35 -08:00
logpersist init.rc: logd: Add logpersistd (nee logcatd) 2015-06-02 15:17:59 -07:00
LogReader.cpp logd: Cleanup 2015-05-12 15:51:46 -07:00
LogReader.h logd: libsysutils: logd startup outside init environment 2014-04-17 16:14:24 +00:00
LogStatistics.cpp logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
LogStatistics.h logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
LogTimes.cpp logd: filters remove leading expire messages and rate 2015-06-05 08:05:05 -07:00
LogTimes.h logd: logtimes switch to std::list 2015-08-20 08:36:03 -07:00
LogWhiteBlackList.cpp logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
LogWhiteBlackList.h logd: switch asprintf to std::string 2015-08-20 10:32:16 -07:00
main.cpp logd: missing klogd content 2015-06-15 21:19:10 +00:00
README.auditd logd: selinux auditd initial commit 2014-04-07 10:51:00 -07:00
README.property init.rc: logd: Add logpersistd (nee logcatd) 2015-06-02 15:17:59 -07:00

The properties that logd responds to are:

name                       type default  description
logd.auditd                 bool  true   Enable selinux audit daemon
logd.auditd.dmesg           bool  true   selinux audit messages duplicated and
                                         sent on to dmesg log
logd.klogd                  bool depends Enable klogd daemon
logd.statistics             bool depends Enable logcat -S statistics.
ro.config.low_ram           bool  false  if true, logd.statistics & logd.klogd
                                         default false
ro.build.type               string       if user, logd.statistics & logd.klogd
                                         default false
persist.logd.logpersistd    string       Enable logpersist daemon, "logcatd"
                                         turns on logcat -f in logd context
persist.logd.size          number 256K   default size of the buffer for all
                                         log ids at initial startup, at runtime
                                         use: logcat -b all -G <value>
persist.logd.size.main     number 256K   Size of the buffer for the main log
persist.logd.size.system   number 256K   Size of the buffer for the system log
persist.logd.size.radio    number 256K   Size of the buffer for the radio log
persist.logd.size.event    number 256K   Size of the buffer for the event log
persist.logd.size.crash    number 256K   Size of the buffer for the crash log

NB:
- number support multipliers (K or M) for convenience. Range is limited
  to between 64K and 256M for log buffer sizes. Individual logs override the
  global default.