nixos/zookeeper: replace outdated log4j with logback.xml

Since some versions back zookeeper replaced log4j with logback.xml

See issue https://issues.apache.org/jira/browse/ZOOKEEPER-4427
See commit 85551f9be5
This commit is contained in:
henning phan
2025-08-16 22:06:09 +02:00
parent 18562ddb7f
commit ebb095396d
2 changed files with 22 additions and 9 deletions

View File

@@ -112,7 +112,7 @@
- The `zigbee2mqtt` package was updated to version 2.x, which contains breaking changes. See the [discussion](https://github.com/Koenkk/zigbee2mqtt/discussions/24198) for further information.
- []{#sec-release-25.11-incompatibilities-sourcehut-removed} The `services.sourcehut` module and corresponding `sourcehut` packages were removed due to being broken and unmaintained.
- The zookeeper project changed their logging tool to logback, therefore `services.zookeeper.logging` option has been updated to expect a logback compatible string.
- The `dovecot` systemd service was renamed from `dovecot2` to `dovecot`. The former is now just an alias. Update any overrides on the systemd unit to the new name.
- `Prosody` has been updated to major release 13 which removed some obsoleted modules and brought a couple of major and breaking changes:

View File

@@ -19,7 +19,7 @@ let
name = "zookeeper-conf";
paths = [
(pkgs.writeTextDir "zoo.cfg" zookeeperConfig)
(pkgs.writeTextDir "log4j.properties" cfg.logging)
(pkgs.writeTextDir "logback.xml" cfg.logging)
];
};
@@ -71,14 +71,27 @@ in
};
logging = lib.mkOption {
description = "Zookeeper logging configuration.";
description = "Zookeeper logging configuration, logback.xml.";
default = ''
zookeeper.root.logger=INFO, CONSOLE
log4j.rootLogger=INFO, CONSOLE
log4j.logger.org.apache.zookeeper.audit.Log4jAuditLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
<configuration>
<property name="zookeeper.console.threshold" value="INFO" />
<property name="zookeeper.log.dir" value="." />
<property name="zookeeper.log.file" value="zookeeper.log" />
<property name="zookeeper.log.threshold" value="INFO" />
<property name="zookeeper.log.maxfilesize" value="256MB" />
<property name="zookeeper.log.maxbackupindex" value="20" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>''${zookeeper.console.threshold}</level>
</filter>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
'';
type = lib.types.lines;
};