summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--modules/services/logging/syslogd.nix38
1 files changed, 27 insertions, 11 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
 
+  cfg = config.services.syslogd;
+
   syslogConf = pkgs.writeText "syslog.conf" ''
-    kern.warning;*.err;authpriv.none /dev/${config.services.syslogd.tty}
+    ${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 <filename>syslog.conf</filename> file configures a
+          fairly standard setup of log files, which can be extended by
+          means of <varname>extraConfig</varname>.
         '';
       };
 
       extraConfig = mkOption {
+        type = types.string;
         default = "";
         example = "news.* -/var/log/news";
         description = ''
-          Additional text appended to <filename>syslog.conf</filename>.
+          Additional text appended to <filename>syslog.conf</filename>,
+          i.e. the contents of <varname>defaultConfig</varname>.
         '';
       };
-      
+
     };
-    
+
   };
 
 
   ###### implementation
 
   config = {
-  
+
     jobs.syslogd =
       { description = "Syslog daemon";
 
@@ -70,5 +86,5 @@ in
       };
 
   };
-  
+
 }