Setting idp.logfiles property in is ignored in IdP V4

Marc Jay marc.jay at
Mon Jun 29 21:22:29 UTC 2020


I'm in the process of upgrading from 3.4.6 to 4.0.1 and I noticed that the Shibboleth logs stopped being written to our custom log location (/var/log/shibboleth-idp) and went back to the default ${idp.home}/logs.

In both versions we are setting this in conf/ "idp.logfiles=/var/log/shibboleth-idp" as per the docs, however it seems to be ignored in 4.0.1

From digging into this, it appears to be due to the order in which variables are loaded in conf/logback.xml combined with the fact that it is not configured to check for a previous definition first. The original being:

    If you want to use custom properties in this config file,
    we load the main property file for you.
    <variable file="${idp.home}/conf/" />

    <!-- Location and retention. -->

    <variable name="idp.logfiles" value="${idp.home}/logs" />

I have tested the following change in logback.xml and I'm seeing that our setting in is respected, along with the default if it is not set:

    <!-- Location and retention. -->

    <variable name="idp.logfiles" value="${idp.logfiles:-${idp.home}/logs}" />

Naturally, moving the loading of the <variable file /> below the variable definition also solves the issue. 

There might be a good reason for this being the way that it is, but I just wanted to highlight this in case there was not.

Kind regards,


More information about the users mailing list