Add multi-destination logging: syslog and file support

Implement logging infrastructure for non-systemd platforms:

- Add src/logging.rs with syslog and file logging support
- New CLI flags: --syslog, --log-file, --log-file-daily
- Syslog uses libc directly with LOG_DAEMON facility
- File logging via tracing-appender with optional daily rotation

Update service scripts:
- OpenRC and FreeBSD rc.d now use --syslog by default
- Ensures logs are captured on platforms without journald

Default (stderr) behavior unchanged for systemd compatibility.
Log destination is selected at startup based on CLI flags.

Signed-off-by: Vladimir Krivopalov <argenet@yandex.ru>
This commit is contained in:
Vladimir Krivopalov
2026-03-20 22:26:42 +02:00
committed by Vladimir Krivopalov
parent 909714af31
commit 95685adba7
7 changed files with 359 additions and 12 deletions

View File

@@ -181,18 +181,20 @@ r#"#!/sbin/openrc-run
description="{description}"
command="{exe}"
command_args="--daemon --pid-file {pid_file} {config}"
command_args="--daemon --syslog --pid-file {pid_file} {config}"
command_user="{user}:{group}"
pidfile="{pid_file}"
depend() {{
need net
use logger
after firewall
}}
start_pre() {{
checkpath --directory --owner {user}:{group} --mode 0755 /var/run
checkpath --directory --owner {user}:{group} --mode 0755 /var/lib/telemt
checkpath --directory --owner {user}:{group} --mode 0755 /var/log/telemt
}}
reload() {{
@@ -246,7 +248,7 @@ load_rc_config $name
pidfile="${{telemt_pidfile}}"
command="{exe}"
command_args="--daemon --pid-file ${{telemt_pidfile}} ${{telemt_config}}"
command_args="--daemon --syslog --pid-file ${{telemt_pidfile}} ${{telemt_config}}"
start_precmd="telemt_prestart"
reload_cmd="telemt_reload"