platform_system_core/logd
Mark Salyzyn d5600fd40f logd: missing klogd content
(cherry pick from commit ee49c6a670)

- regression in log_strtok_r (part deux) In commit
      'logd: fix kernel logline stutter'
  2c3b300fd8 we introduced log_strtok_r.
  as a replacement for strtok_r that dealt with a problem with
  some kernel log messages. Fix is to refine definition of
  is_timestamp to not match on patterns like [0], requiring
  a single period. Another fix is to refine definition of
  is_prio to properly escape non-digit content.
- Missing content because SYSLOG_ACTION_SIZE_BUFFER with added logging
  is too short for full read of SYSLOG_ACTION_READ_ALL dropping
  initial content. Add a margin for additional 1024 bytes.
- Absolute _first_ log entry has sequence number of 1, which is
  specifically dropped, start sequence count at 1 rather than 0.
- Remove trailing space for efficiency.
- If tag exists but no content, trick into kernel logging.

Bug: 21851884
Change-Id: I0867a555a3bca09bbf18d18e75e41dffffe57a23
2015-06-15 14:22:02 -07:00
..
tests logd: test modernization 2015-06-01 14:27:02 -07:00
Android.mk init.rc: logd: Add logpersistd (nee logcatd) 2015-06-02 15:28:36 -07:00
CommandListener.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
CommandListener.h logd: add reinit command 2015-03-12 12:24:47 -07:00
FlushCommand.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
FlushCommand.h logd: replace internal CLOCK_MONOTONIC use with sequence numbers 2015-03-18 12:43:23 -07:00
LogAudit.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
LogAudit.h logd: auditd remove logDmesg method 2014-12-05 20:56:44 +00:00
LogBuffer.cpp logd: filter on __android_log_is_loggable 2015-06-15 07:41:03 -07:00
LogBuffer.h logd: improve details on chatty records 2015-04-30 15:25:12 -07:00
LogBufferElement.cpp logd: missing klogd content 2015-06-15 14:22:02 -07:00
LogBufferElement.h logd: filters remove leading expire messages and rate 2015-06-05 10:20:55 -07:00
LogCommand.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
LogCommand.h logd: institute getGroups for socket credentials 2014-02-28 13:48:33 -08:00
LogKlog.cpp logd: missing klogd content 2015-06-15 14:22:02 -07:00
LogKlog.h logd: fix kernel logline stutter 2015-06-08 13:55:14 -07:00
LogListener.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
LogListener.h logd: initial checkin. 2014-02-26 09:52:35 -08:00
LogReader.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
LogReader.h logd: libsysutils: logd startup outside init environment 2014-04-17 16:14:24 +00:00
LogStatistics.cpp logd: switch to unordered_map from BasicHashtable 2015-06-04 11:03:37 -07:00
LogStatistics.h logd: switch to unordered_map from BasicHashtable 2015-06-04 11:03:37 -07:00
LogTimes.cpp logd: filters remove leading expire messages and rate 2015-06-05 10:20:55 -07:00
LogTimes.h logd: filters remove leading expire messages and rate 2015-06-05 10:20:55 -07:00
LogWhiteBlackList.cpp logd: Cleanup 2015-05-13 09:22:56 -07:00
LogWhiteBlackList.h logd: optimize statistics 2015-03-20 12:31:23 -07: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:28:36 -07:00
event.logtags logd: annotate worst-UID pruned entries 2015-04-10 15:45:08 -07:00
libaudit.c Revert "libaudit: limit to 5 selinux denials per sec" 2015-05-11 15:43:25 -07:00
libaudit.h logd: throttle SELinux denials to 20/sec 2014-11-19 13:35:36 -08:00
logpersist init.rc: logd: Add logpersistd (nee logcatd) 2015-06-02 15:28:36 -07:00
main.cpp logd: missing klogd content 2015-06-15 14:22:02 -07:00

README.property

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.