• Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.2
    • Component/s: UI
    • Labels:
    • Release Note:


      We need to fix bundle logging, and make Jetty and Nexus use same logback backend of SLF4J.

      Nexus 2.0 line has following setup: jetty on it's classpath does not have any slf4j stuff, everything is in Nexus webapp. Hence, Jetty uses it's "std out" logger, and it's annoying for multiple reasons: it is not getting into nexus.log, it uses different formatting, is hard to configure (at least different stuff needed often misleding).

      Nexus 2.1 line is a bit better: jetty on it's classpath has slf4j+logback, but those classes are hidden (marked as server classes), and Nexus still has it's own copy of slf4j+logback. Hence, we have logback in jetty's own classloader but also in nexus classloader. Reason for this is the "nexus-logging-extras" module, that tampers directly with logback and contains a logback appender implementation.

      Because of appender, jetty cannot share at "server level" the logback, as then logbacks's classloader would not find appender that is configured and resides in nexus classloader (child of jetty classloader, the one loading up logback). Situation as in Nexus 2.0 is a no go either, jetty would not "see" logback.

      Hence, what we need is to split "nexus=logging-extras" module in two: one with components that would go along with nexus (where it is today), and one that can be extracted and put on "top level" (jetty level), unmark jetty's logback as "server classes" and have only one logback instance in bundle.


          Issue Links



              • Assignee:
                cstamas Tamás Cservenák
                Last Updated By:
                Jason Dillon
              • Votes:
                0 Vote for this issue
                1 Start watching this issue


                • Created:
                  Date of First Response: