From d7c4900420361dd8b2213b3df407887982f05cf0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 13 Jul 2011 18:24:53 +0000 Subject: [PATCH] syslogd: extended configuration options This commit adds the option 'services.syslogd.defaultConfig', which is the main syslog.conf file used by the daemon. Like before, That file can be extended by means of 'services.syslogd.extraConfig'. Users who want a completely different configuration, however, can re-define defaultConfig to their liking. Furthermore, the option services.syslogd.tty' is now optional: setting its value to the empty string "" disables logging to TTY altogether. svn path=/nixos/trunk/; revision=27769 --- modules/services/logging/syslogd.nix | 40 +++++++++++++++++++--------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/modules/services/logging/syslogd.nix b/modules/services/logging/syslogd.nix index 64b158742ec..f6eb914b66e 100644 --- a/modules/services/logging/syslogd.nix +++ b/modules/services/logging/syslogd.nix @@ -4,9 +4,15 @@ with pkgs.lib; let - syslogConf = pkgs.writeText "syslog.conf" '' - kern.warning;*.err;authpriv.none /dev/${config.services.syslogd.tty} + cfg = config.services.syslogd; + syslogConf = pkgs.writeText "syslog.conf" '' + ${if (cfg.tty != "") then "kern.warning;*.err;authpriv.none /dev/${cfg.tty}" else ""} + ${cfg.defaultConfig} + ${cfg.extraConfig} + ''; + + defaultConf = '' # Send emergency messages to all users. *.emerg * @@ -19,44 +25,54 @@ let *.crit /var/log/warn *.*;mail.none;local1.none -/var/log/messages - - ${config.services.syslogd.extraConfig} ''; - in { ###### interface options = { - + services.syslogd = { tty = mkOption { + type = types.string; default = "tty10"; description = '' The tty device on which syslogd will print important log - messages. + messages. Leave this option blank to disable tty logging. + ''; + }; + + defaultConfig = mkOption { + type = types.string; + default = defaultConf; + description = '' + The default syslog.conf file configures a + fairly standard setup of log files, which can be extended by + means of extraConfig. ''; }; extraConfig = mkOption { + type = types.string; default = ""; example = "news.* -/var/log/news"; description = '' - Additional text appended to syslog.conf. + Additional text appended to syslog.conf, + i.e. the contents of defaultConfig. ''; }; - + }; - + }; ###### implementation config = { - + jobs.syslogd = { description = "Syslog daemon"; @@ -70,5 +86,5 @@ in }; }; - + }