mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-02 18:23:44 +00:00
Merge pull request #260008 from Ma27/synapse-log-config
nixos/matrix-synapse: mergeable log configuration
This commit is contained in:
commit
3357e6df46
@ -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";
|
||||
@ -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 = [
|
||||
@ -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 ''
|
||||
@ -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…
Reference in New Issue
Block a user