services: rottlog: More convenient default options for <log-rotation>.

* gnu/services/admin.scm (%default-log-rotation-options): New variable.
(%default-rotations): Use it.
* gnu/services/cuirass.scm (cuirass-log-rotations): Likewise.
* doc/guix.texi (Log Rotation): Adjust accordingly.
This commit is contained in:
Ludovic Courtès 2022-07-31 23:35:27 +02:00
parent 4de445f3da
commit 7d0ebc467f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 18 additions and 10 deletions

View file

@ -18811,9 +18811,10 @@ The log rotation frequency, a symbol.
@item @code{files} @item @code{files}
The list of files or file glob patterns to rotate. The list of files or file glob patterns to rotate.
@item @code{options} (default: @code{'()}) @vindex %default-log-rotation-options
@item @code{options} (default: @code{%default-log-rotation-options})
The list of rottlog options for this rotation (@pxref{Configuration The list of rottlog options for this rotation (@pxref{Configuration
parameters,,, rottlog, GNU Rot[t]lg Manual}). parameters,,, rottlog, GNU Rot[t]log Manual}).
@item @code{post-rotate} (default: @code{#f}) @item @code{post-rotate} (default: @code{#f})
Either @code{#f} or a gexp to execute once the rotation has completed. Either @code{#f} or a gexp to execute once the rotation has completed.

View file

@ -40,6 +40,7 @@ (define-module (gnu services admin)
log-rotation-files log-rotation-files
log-rotation-options log-rotation-options
log-rotation-post-rotate log-rotation-post-rotate
%default-log-rotation-options
rottlog-configuration rottlog-configuration
rottlog-configuration? rottlog-configuration?
@ -82,7 +83,12 @@ (define-record-type* <log-rotation> log-rotation make-log-rotation
(post-rotate log-rotation-post-rotate ;#f | gexp (post-rotate log-rotation-post-rotate ;#f | gexp
(default #f)) (default #f))
(options log-rotation-options ;list of strings (options log-rotation-options ;list of strings
(default '()))) (default %default-log-rotation-options)))
(define %default-log-rotation-options
;; Default log rotation options: append ".gz" to file names.
'("storefile @FILENAME.@COMP_EXT"
"notifempty"))
(define %rotated-files (define %rotated-files
;; Syslog files subject to rotation. ;; Syslog files subject to rotation.
@ -94,20 +100,20 @@ (define %default-rotations
(files %rotated-files) (files %rotated-files)
(frequency 'weekly) (frequency 'weekly)
(options '(;; These files are worth keeping for a few weeks. (options `(;; These files are worth keeping for a few weeks.
"rotate 16" "rotate 16"
;; Run post-rotate once per rotation ;; Run post-rotate once per rotation
"sharedscripts" "sharedscripts"
;; Append .gz to rotated files
"storefile @FILENAME.@COMP_EXT")) ,@%default-log-rotation-options))
;; Restart syslogd after rotation. ;; Restart syslogd after rotation.
(post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid" (post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid"
read))) read)))
(kill pid SIGHUP)))) (kill pid SIGHUP))))
(log-rotation (log-rotation
(files '("/var/log/guix-daemon.log")) (files '("/var/log/guix-daemon.log"))
(options '("rotate 4" ;don't keep too many of them (options `("rotate 4" ;don't keep too many of them
"storefile @FILENAME.@COMP_EXT"))))) ,@%default-log-rotation-options)))))
(define (log-rotation->config rotation) (define (log-rotation->config rotation)
"Return a string-valued gexp representing the rottlog configuration snippet "Return a string-valued gexp representing the rottlog configuration snippet

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -305,7 +305,8 @@ (define (cuirass-log-rotations config)
(files (list (cuirass-configuration-log-file config) (files (list (cuirass-configuration-log-file config)
(cuirass-configuration-web-log-file config))) (cuirass-configuration-web-log-file config)))
(frequency 'weekly) (frequency 'weekly)
(options '("rotate 40"))))) ;worth keeping (options `("rotate 40" ;worth keeping
,@%default-log-rotation-options)))))
(define cuirass-service-type (define cuirass-service-type
(service-type (service-type