Loading nixos/modules/services/matrix/synapse.nix +60 −22 Original line number Diff line number Diff line Loading @@ -72,13 +72,12 @@ let inherit (cfg) plugins; }; logConfig = logName: { defaultCommonLogConfig = { version = 1; formatters.journal_fmt.format = "%(name)s: [%(request)s] %(message)s"; handlers.journal = { class = "systemd.journal.JournalHandler"; formatter = "journal_fmt"; SYSLOG_IDENTIFIER = logName; }; root = { level = "INFO"; Loading @@ -86,33 +85,27 @@ let }; disable_existing_loggers = false; }; defaultCommonLogConfigText = generators.toPretty { } defaultCommonLogConfig; logConfigText = logName: let expr = '' { version = 1; formatters.journal_fmt.format = "%(name)s: [%(request)s] %(message)s"; handlers.journal = { class = "systemd.journal.JournalHandler"; formatter = "journal_fmt"; SYSLOG_IDENTIFIER = "${logName}"; }; root = { level = "INFO"; handlers = [ "journal" ]; }; disable_existing_loggers = false; }; ''; in lib.literalMD '' Path to a yaml file generated from this Nix expression: ``` ${expr} ${generators.toPretty { } ( recursiveUpdate defaultCommonLogConfig { handlers.journal.SYSLOG_IDENTIFIER = logName; } )} ``` ''; genLogConfigFile = logName: format.generate "synapse-log-${logName}.yaml" (logConfig logName); genLogConfigFile = logName: format.generate "synapse-log-${logName}.yaml" (cfg.log // optionalAttrs (cfg.log?handlers.journal) { handlers.journal = cfg.log.handlers.journal // { SYSLOG_IDENTIFIER = logName; }; }); in { imports = [ Loading Loading @@ -396,6 +389,49 @@ in { ''; }; log = mkOption { type = types.attrsOf format.type; defaultText = literalExpression defaultCommonLogConfigText; description = mdDoc '' Default configuration for the loggers used by `matrix-synapse` and its workers. The defaults are added with the default priority which means that these will be merged with additional declarations. These additional declarations also take precedence over the defaults when declared with at least normal priority. For instance the log-level for synapse and its workers can be changed like this: ```nix { lib, ... }: { services.matrix-synapse.log.root.level = "WARNING"; } ``` And another field can be added like this: ```nix { services.matrix-synapse.log = { loggers."synapse.http.matrixfederationclient".level = "DEBUG"; }; } ``` Additionally, the field `handlers.journal.SYSLOG_IDENTIFIER` will be added to each log config, i.e. * `synapse` for `matrix-synapse.service` * `synapse-<worker name>` for `matrix-synapse-worker-<worker name>.service` This is only done if this option has a `handlers.journal` field declared. To discard all settings declared by this option for each worker and synapse, `lib.mkForce` can be used. To discard all settings declared by this option for a single worker or synapse only, [](#opt-services.matrix-synapse.workers._name_.worker_log_config) or [](#opt-services.matrix-synapse.settings.log_config) can be used. ''; }; settings = mkOption { default = { }; description = mdDoc '' Loading Loading @@ -993,6 +1029,8 @@ in { # default them, so they are additive services.matrix-synapse.extras = defaultExtras; services.matrix-synapse.log = mapAttrsRecursive (const mkDefault) defaultCommonLogConfig; users.users.matrix-synapse = { group = "matrix-synapse"; home = cfg.dataDir; Loading Loading
nixos/modules/services/matrix/synapse.nix +60 −22 Original line number Diff line number Diff line Loading @@ -72,13 +72,12 @@ let inherit (cfg) plugins; }; logConfig = logName: { defaultCommonLogConfig = { version = 1; formatters.journal_fmt.format = "%(name)s: [%(request)s] %(message)s"; handlers.journal = { class = "systemd.journal.JournalHandler"; formatter = "journal_fmt"; SYSLOG_IDENTIFIER = logName; }; root = { level = "INFO"; Loading @@ -86,33 +85,27 @@ let }; disable_existing_loggers = false; }; defaultCommonLogConfigText = generators.toPretty { } defaultCommonLogConfig; logConfigText = logName: let expr = '' { version = 1; formatters.journal_fmt.format = "%(name)s: [%(request)s] %(message)s"; handlers.journal = { class = "systemd.journal.JournalHandler"; formatter = "journal_fmt"; SYSLOG_IDENTIFIER = "${logName}"; }; root = { level = "INFO"; handlers = [ "journal" ]; }; disable_existing_loggers = false; }; ''; in lib.literalMD '' Path to a yaml file generated from this Nix expression: ``` ${expr} ${generators.toPretty { } ( recursiveUpdate defaultCommonLogConfig { handlers.journal.SYSLOG_IDENTIFIER = logName; } )} ``` ''; genLogConfigFile = logName: format.generate "synapse-log-${logName}.yaml" (logConfig logName); genLogConfigFile = logName: format.generate "synapse-log-${logName}.yaml" (cfg.log // optionalAttrs (cfg.log?handlers.journal) { handlers.journal = cfg.log.handlers.journal // { SYSLOG_IDENTIFIER = logName; }; }); in { imports = [ Loading Loading @@ -396,6 +389,49 @@ in { ''; }; log = mkOption { type = types.attrsOf format.type; defaultText = literalExpression defaultCommonLogConfigText; description = mdDoc '' Default configuration for the loggers used by `matrix-synapse` and its workers. The defaults are added with the default priority which means that these will be merged with additional declarations. These additional declarations also take precedence over the defaults when declared with at least normal priority. For instance the log-level for synapse and its workers can be changed like this: ```nix { lib, ... }: { services.matrix-synapse.log.root.level = "WARNING"; } ``` And another field can be added like this: ```nix { services.matrix-synapse.log = { loggers."synapse.http.matrixfederationclient".level = "DEBUG"; }; } ``` Additionally, the field `handlers.journal.SYSLOG_IDENTIFIER` will be added to each log config, i.e. * `synapse` for `matrix-synapse.service` * `synapse-<worker name>` for `matrix-synapse-worker-<worker name>.service` This is only done if this option has a `handlers.journal` field declared. To discard all settings declared by this option for each worker and synapse, `lib.mkForce` can be used. To discard all settings declared by this option for a single worker or synapse only, [](#opt-services.matrix-synapse.workers._name_.worker_log_config) or [](#opt-services.matrix-synapse.settings.log_config) can be used. ''; }; settings = mkOption { default = { }; description = mdDoc '' Loading Loading @@ -993,6 +1029,8 @@ in { # default them, so they are additive services.matrix-synapse.extras = defaultExtras; services.matrix-synapse.log = mapAttrsRecursive (const mkDefault) defaultCommonLogConfig; users.users.matrix-synapse = { group = "matrix-synapse"; home = cfg.dataDir; Loading