From 81fa2229ecb80a8ae90c8e24771e1df880e75383 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 8 Jun 2017 20:12:38 +0200 Subject: services: rottlog: Define objects. * gnu/services/admin.scm (): New record type. (syslog-rotation-config, simple-rotation-config): Remove. (%default-rotations): Define as a list of objects. (log-rotation->config, log-rotations->/etc-entries): New procedures. ()[periodic-rotations]: Remove. [rotations]: New field. (rottlog-etc): Use 'log-rotations->/etc-entries'. * doc/guix.texi (Log Rotation): Update accordingly. --- doc/guix.texi | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 83f20c8598..b8675bde2a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9543,7 +9543,7 @@ services admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}). The example below defines an operating system that provides log rotation -with the default settings. +with the default settings, for commonly encountered log files. @lisp (use-modules (guix) (gnu)) @@ -9576,33 +9576,53 @@ The Rottlog package to use. The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual}). -@item @code{periodic-rotations} (default: @code{`(("weekly" %default-rotations))}) -A list of Rottlog period-name/period-config tuples. +@item @code{rotations} (default: @code{%default-rotations}) +A list of @code{log-rotation} objects as defined below. -For example, taking an example from the Rottlog manual (@pxref{Period -Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a valid tuple -might be: +@item @code{jobs} +This is a list of gexps where each gexp corresponds to an mcron job +specification (@pxref{Scheduled Job Execution}). +@end table +@end deftp + +@deftp {Data Type} log-rotation +Data type representing the rotation of a group of log files. + +Taking an example from the Rottlog manual (@pxref{Period Related File +Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be +defined like this: @example -("daily" ,(plain-file "daily" - "\ - /var/log/apache/* @{ - storedir apache-archives - rotate 6 - notifempty - nocompress - @}")) +(log-rotation + (frequency 'daily) + (files '("/var/log/apache/*")) + (options '("storedir apache-archives" + "rotate 6" + "notifempty" + "nocompress"))) @end example -@item @code{jobs} -This is a list of gexps where each gexp corresponds to an mcron job -specification (@pxref{Scheduled Job Execution}). +The list of fields is as follows: + +@table @asis +@item @code{frequency} (default: @code{'weekly}) +The log rotation frequency, a symbol. + +@item @code{files} +The list of files or file glob patterns to rotate. + +@item @code{options} (default: @code{'()}) +The list of rottlog options for this rotation (@pxref{Configuration +parameters,,, rottlog, GNU Rot[t]lg Manual}). + +@item @code{post-rotate} (default: @code{#f}) +Either @code{#f} or a gexp to execute once the rotation has completed. @end table @end deftp @defvr {Scheme Variable} %default-rotations Specifies weekly rotation of @var{%rotated-files} and -@code{"/var/log/shepherd.log"}. +a couple of other files. @end defvr @defvr {Scheme Variable} %rotated-files -- cgit v1.2.3