civodul pushed a commit to branch wip-syslogd in repository shepherd. commit 30ccc5097ac36bf8d755b426b289ebf5249ed759 Author: Ludovic Courtès <l...@gnu.org> AuthorDate: Mon Jul 22 23:21:54 2024 +0200
squash! Remove PID/sender parsing. --- modules/shepherd/service/system-log.scm | 35 ++++++--------------------------- tests/services/system-log-internal.scm | 13 ++---------- 2 files changed, 8 insertions(+), 40 deletions(-) diff --git a/modules/shepherd/service/system-log.scm b/modules/shepherd/service/system-log.scm index 297c8fc..9185776 100644 --- a/modules/shepherd/service/system-log.scm +++ b/modules/shepherd/service/system-log.scm @@ -40,8 +40,6 @@ #:export (system-log-message? system-log-message-facility system-log-message-priority - system-log-message-pid - system-log-message-sender system-log-message-content system-log-priority @@ -53,11 +51,9 @@ ;; Message sent to the system log (minus its timestamp). (define-record-type <system-log-message> - (system-log-message priority+facility sender pid content) + (system-log-message priority+facility content) system-log-message? (priority+facility system-log-message-priority+facility) - (sender system-log-message-sender) - (pid system-log-message-pid) (content system-log-message-content)) (define-syntax define-enumerate-type @@ -119,11 +115,7 @@ ;; Regexp matching system log messages. Example: ;; <29>Jun 22 16:41:30 wpa_supplicant[303]: whatever (make-regexp "<([0-9]+)> ?([[:alpha:]]{3} [0-9]+ [0-9]+:[0-9]+:[0-9]+ )?\ -([[:graph:]]+): (.*)")) - -(define %process+pid-rx - ;; Regexp matching "process[123]". - (make-regexp "([[:graph:]]+)\\[([[:digit:]]+)\\]")) +(.*)")) (define %default-priority (system-log-priority notice)) (define %default-facility (system-log-facility user)) @@ -134,19 +126,11 @@ representing it." (match (false-if-exception (regexp-exec %system-log-message-rx line)) (#f (system-log-message (logior %default-facility %default-priority) - #f #f line)) + line)) (m - (let* ((facility+priority (string->number (match:substring m 1))) - (process+pid (match:substring m 3)) - (process pid (match (regexp-exec %process+pid-rx - process+pid) - (#f (values process+pid #f)) - (m (values (match:substring m 1) - (string->number - (match:substring m 2))))))) + (let* ((facility+priority (string->number (match:substring m 1)))) (system-log-message facility+priority - process pid - (match:substring m 4)))))) + (match:substring m 3)))))) (define (read-system-log-message port) "Read a system log message from @var{port}. Return the end-of-file object @@ -224,7 +208,7 @@ messages to be logged on @var{socket} and passing them to @var{dispatcher}." ;; Message logged when nothing was logged for a while. (system-log-message (logior (system-log-facility internal/mark) (system-log-priority info)) - #f #f "-- MARK --")) + "-- MARK --")) (define* (log-dispatcher channel log-files #:key max-silent-time) "Dispatch system log messages received on @var{channel} to log files. Call @@ -237,13 +221,6 @@ file(s)." (localtime now)))) ;; Avoid (ice-9 format) to reduce heap allocations. (put-string output prefix) - (when (system-log-message-sender message) - (if (system-log-message-pid message) - (simple-format output "~a[~a]: " - (system-log-message-sender message) - (system-log-message-pid message)) - (simple-format output "~a: " - (system-log-message-sender message)))) (put-string output (system-log-message-content message)) (newline output) now)) diff --git a/tests/services/system-log-internal.scm b/tests/services/system-log-internal.scm index 2520f65..4101909 100644 --- a/tests/services/system-log-internal.scm +++ b/tests/services/system-log-internal.scm @@ -25,37 +25,30 @@ (test-equal "read-system-log-message, with PID" (list (system-log-facility daemon) (system-log-priority notice) - "wpa_supplicant" 303 - "wlp0s20f0u2: CTRL-EVENT-BEACON-LOSS") + "wpa_supplicant[303]: wlp0s20f0u2: CTRL-EVENT-BEACON-LOSS") (call-with-input-string "<29>Jun 22 16:41:31 wpa_supplicant[303]: \ wlp0s20f0u2: CTRL-EVENT-BEACON-LOSS" (lambda (port) (let ((message (read-system-log-message port))) (list (system-log-message-facility message) (system-log-message-priority message) - (system-log-message-sender message) - (system-log-message-pid message) (system-log-message-content message)))))) (test-equal "read-system-log-message, without PID" (list (system-log-facility authorization/private) (system-log-priority notice) - "sudo" #f - "ludo : TTY=pts/0 ; PWD=/home/ludo ; USER=root ; COMMAND=xyz") + "sudo: ludo : TTY=pts/0 ; PWD=/home/ludo ; USER=root ; COMMAND=xyz") (call-with-input-string "<85>Jun 29 10:45:55 \ sudo: ludo : TTY=pts/0 ; PWD=/home/ludo ; USER=root ; COMMAND=xyz" (lambda (port) (let ((message (read-system-log-message port))) (list (system-log-message-facility message) (system-log-message-priority message) - (system-log-message-sender message) - (system-log-message-pid message) (system-log-message-content message)))))) (test-equal "read-system-log-message, raw" (list (system-log-facility user) (system-log-priority notice) - #f #f "shepherd[1]: Stopping service tor...") ;; This message lacks the usual syslog header. (call-with-input-string "shepherd[1]: Stopping service tor...\n" @@ -63,8 +56,6 @@ sudo: ludo : TTY=pts/0 ; PWD=/home/ludo ; USER=root ; COMMAND=xyz" (let ((message (read-system-log-message port))) (list (system-log-message-facility message) (system-log-message-priority message) - (system-log-message-sender message) - (system-log-message-pid message) (system-log-message-content message)))))) (test-end)