Skip to content

Logback can no longer monitor not-yet-existing included files #1021

Description

@phearnot

As described in #928, Logback 1.5.18 used to be able to watch not-yet-existing files, but as of version 1.5.27, this feature is no longer available. We used this feature in Waves Node to make it easier for the end users to configure logging without restarting the process. Waves Node version 1.5.11 includes Logback 1.5.18, which works fine, and the development build with Logback 1.5.27 no longer loads the newly created included file.

Here's how to reproduce it in our app. Suppose /tmp/conf is an empty directory where logback.xml would later be created. Run the container with Waves node:

docker run --rm -it -e WAVES_WALLET_PASSWORD=123 -v /tmp/conf:/etc/waves wavesplatform/wavesnode:1.5.11

Notice that stdout log level is set to INFO and keep the process running. Now create the included logback.xml:

cat <<EOF >/tmp/conf/logback.xml
<included>
  <property name="logback.stdout.level" value="TRACE"/>
</included>
EOF

Wait a few seconds and notice that TRACE messages begin to show up.

Check Logback version:

❯ docker run --rm --entrypoint bash wavesplatform/wavesnode:1.5.11  -c 'ls -1 /usr/share/waves/lib/*logback.logback*'
/usr/share/waves/lib/ch.qos.logback.logback-classic-1.5.18.jar
/usr/share/waves/lib/ch.qos.logback.logback-core-1.5.18.jar

When running the development build, Logback no longer reads the changes from the newly created file:

docker run --rm -it -e WAVES_WALLET_PASSWORD=123 -v /tmp/conf:/etc/waves ghcr.io/wavesplatform/waves:p256verify

Logback versions in the dev build:

❯ docker run --rm --entrypoint bash ghcr.io/wavesplatform/waves:p256verify  -c 'ls -1 /usr/share/waves/lib/*logback.logback*'
/usr/share/waves/lib/ch.qos.logback.logback-classic-1.5.27.jar
/usr/share/waves/lib/ch.qos.logback.logback-core-1.5.27.jar

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions