Skip to content

Adding -Dlogback.ContextSelector=JNDI does not work for detecting the custom logger context name #781

Open
@gmiscione

Description

@gmiscione

We are deploying our application with tomcat and we are specifing the custom context name in our web.xml like this:

<!-- name for logback lookup -->
<env-entry>
  <env-entry-name>logback/context-name</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>contextA</env-entry-value>
</env-entry>

With logback 1.2.9, when tomcat is launched with the -Dlogback.ContextSelector=JNDI, the application correctly loads the file logback-contextA.xml and inits the logger with its content. In version 1.3.14, the JNDI lookup is not done. Investigating the issue, we found out that now the code is relying on java services to detect the binding and it's using ch.qos.logback.classic.spi.LogbackServiceProvider to init the logger, but in this class the call to contextSelectorBinder.init(defaultLoggerContext, KEY); is commented, so the context selector binder is not called at all. It seems that the comment has been added in this commit.

Are we missing something there or is it a bug in the service provider not calling the context selector init method?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions