mirror of
https://github.com/sheumann/hush.git
synced 2024-08-16 09:29:16 +00:00
Why invent our own shared memory circular buffer when the kernel has a perfectly fine one already? This can be used as a smaller/simpler alternative to the syslogd IPC support (as IPC shmem/klogd/logread aren't needed), while also allowing centralised logging of everything (kernel messages, userspace bootup and syslog) when used together with ttyprintk. Notice that kernel 3.5+ is needed to store syslog facility in printk buffer, otherwise only the priority is stored. bloat-o-meter compared to IPC+klogd+logread: function old new delta get_linux_version_code - 84 +84 lbb_prepare 25 90 +65 applet_nameofs 6 - -6 static.stdout@@GLIBC_2 8 - -8 applet_names 23 9 -14 bb_msg_standard_output 16 - -16 init_sem 18 - -18 xatoull_range 19 - -19 overlapping_strcpy 21 - -21 init_data 56 32 -24 applet_main 24 - -24 main 124 99 -25 full_write2_str 26 - -26 error_exit 26 - -26 bb_basename 30 - -30 sem_up 32 - -32 interrupted 35 - -35 fflush_stdout_and_exit 38 - -38 bb_banner 46 - -46 find_applet_by_name 59 - -59 bb_signals_recursive_norestart 90 - -90 run_applet_no_and_exit 104 - -104 timestamp_and_log 651 523 -128 syslogd_main 798 581 -217 xstrtoull_range_sfx 267 - -267 run_applet_and_exit 432 - -432 klogd_main 490 - -490 logread_main 508 - -508 .rodata 1870 937 -933 bb_common_bufsiz1 8193 - -8193 ------------------------------------------------------------------------------ (add/remove: 2/26 grow/shrink: 1/6 up/down: 149/-11829) Total: -11680 bytes Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
170 lines
5.0 KiB
Plaintext
170 lines
5.0 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see scripts/kbuild/config-language.txt.
|
|
#
|
|
|
|
menu "System Logging Utilities"
|
|
|
|
INSERT
|
|
|
|
config SYSLOGD
|
|
bool "syslogd"
|
|
default y
|
|
help
|
|
The syslogd utility is used to record logs of all the
|
|
significant events that occur on a system. Every
|
|
message that is logged records the date and time of the
|
|
event, and will generally also record the name of the
|
|
application that generated the message. When used in
|
|
conjunction with klogd, messages from the Linux kernel
|
|
can also be recorded. This is terribly useful,
|
|
especially for finding what happened when something goes
|
|
wrong. And something almost always will go wrong if
|
|
you wait long enough....
|
|
|
|
config FEATURE_ROTATE_LOGFILE
|
|
bool "Rotate message files"
|
|
default y
|
|
depends on SYSLOGD
|
|
help
|
|
This enables syslogd to rotate the message files
|
|
on his own. No need to use an external rotatescript.
|
|
|
|
config FEATURE_REMOTE_LOG
|
|
bool "Remote Log support"
|
|
default y
|
|
depends on SYSLOGD
|
|
help
|
|
When you enable this feature, the syslogd utility can
|
|
be used to send system log messages to another system
|
|
connected via a network. This allows the remote
|
|
machine to log all the system messages, which can be
|
|
terribly useful for reducing the number of serial
|
|
cables you use. It can also be a very good security
|
|
measure to prevent system logs from being tampered with
|
|
by an intruder.
|
|
|
|
config FEATURE_SYSLOGD_DUP
|
|
bool "Support -D (drop dups) option"
|
|
default y
|
|
depends on SYSLOGD
|
|
help
|
|
Option -D instructs syslogd to drop consecutive messages
|
|
which are totally the same.
|
|
|
|
config FEATURE_SYSLOGD_CFG
|
|
bool "Support syslog.conf"
|
|
default y
|
|
depends on SYSLOGD
|
|
help
|
|
Supports restricted syslogd config. See docs/syslog.conf.txt
|
|
|
|
config FEATURE_SYSLOGD_READ_BUFFER_SIZE
|
|
int "Read buffer size in bytes"
|
|
default 256
|
|
range 256 20000
|
|
depends on SYSLOGD
|
|
help
|
|
This option sets the size of the syslog read buffer.
|
|
Actual memory usage increases around five times the
|
|
change done here.
|
|
|
|
config FEATURE_IPC_SYSLOG
|
|
bool "Circular Buffer support"
|
|
default y
|
|
depends on SYSLOGD
|
|
help
|
|
When you enable this feature, the syslogd utility will
|
|
use a circular buffer to record system log messages.
|
|
When the buffer is filled it will continue to overwrite
|
|
the oldest messages. This can be very useful for
|
|
systems with little or no permanent storage, since
|
|
otherwise system logs can eventually fill up your
|
|
entire filesystem, which may cause your system to
|
|
break badly.
|
|
|
|
config FEATURE_IPC_SYSLOG_BUFFER_SIZE
|
|
int "Circular buffer size in Kbytes (minimum 4KB)"
|
|
default 16
|
|
range 4 2147483647
|
|
depends on FEATURE_IPC_SYSLOG
|
|
help
|
|
This option sets the size of the circular buffer
|
|
used to record system log messages.
|
|
|
|
config LOGREAD
|
|
bool "logread"
|
|
default y
|
|
depends on FEATURE_IPC_SYSLOG
|
|
help
|
|
If you enabled Circular Buffer support, you almost
|
|
certainly want to enable this feature as well. This
|
|
utility will allow you to read the messages that are
|
|
stored in the syslogd circular buffer.
|
|
|
|
config FEATURE_LOGREAD_REDUCED_LOCKING
|
|
bool "Double buffering"
|
|
default y
|
|
depends on LOGREAD
|
|
help
|
|
'logread' ouput to slow serial terminals can have
|
|
side effects on syslog because of the semaphore.
|
|
This option make logread to double buffer copy
|
|
from circular buffer, minimizing semaphore
|
|
contention at some minor memory expense.
|
|
|
|
config FEATURE_KMSG_SYSLOG
|
|
bool "Linux kernel printk buffer support"
|
|
default y
|
|
depends on SYSLOGD
|
|
select PLATFORM_LINUX
|
|
help
|
|
When you enable this feature, the syslogd utility will
|
|
write system log message to the Linux kernel's printk buffer.
|
|
This can be used as a smaller alternative to the syslogd IPC
|
|
support, as klogd and logread aren't needed.
|
|
|
|
NOTICE: Syslog facilities in log entries needs kernel 3.5+.
|
|
|
|
config KLOGD
|
|
bool "klogd"
|
|
default y
|
|
help
|
|
klogd is a utility which intercepts and logs all
|
|
messages from the Linux kernel and sends the messages
|
|
out to the 'syslogd' utility so they can be logged. If
|
|
you wish to record the messages produced by the kernel,
|
|
you should enable this option.
|
|
|
|
comment "klogd should not be used together with syslog to kernel printk buffer"
|
|
depends on KLOGD && FEATURE_KMSG_SYSLOG
|
|
|
|
config FEATURE_KLOGD_KLOGCTL
|
|
bool "Use the klogctl() interface"
|
|
default y
|
|
depends on KLOGD
|
|
select PLATFORM_LINUX
|
|
help
|
|
The klogd applet supports two interfaces for reading
|
|
kernel messages. Linux provides the klogctl() interface
|
|
which allows reading messages from the kernel ring buffer
|
|
independently from the file system.
|
|
|
|
If you answer 'N' here, klogd will use the more portable
|
|
approach of reading them from /proc or a device node.
|
|
However, this method requires the file to be available.
|
|
|
|
If in doubt, say 'Y'.
|
|
|
|
config LOGGER
|
|
bool "logger"
|
|
default y
|
|
select FEATURE_SYSLOG
|
|
help
|
|
The logger utility allows you to send arbitrary text
|
|
messages to the system log (i.e. the 'syslogd' utility) so
|
|
they can be logged. This is generally used to help locate
|
|
problems that occur within programs and scripts.
|
|
|
|
endmenu
|