Nel mio progetto Maven, ho un modulo in funzione su un altro ed è il codice di prova/risorse:logback-test.xml e multi-modulo di progetto Maven
...
<scope>test</scope>
<type>test-jar</type>
...
Ora, entrambi i moduli hanno un proprio logback-test.xml, ognuno con una configurazione specifica per l'esecuzione di test in quel particolare modulo. Tuttavia, come previsto, durante l'esecuzione di prove in modulo bambino, logback si lamenta con un avvertimento che ci sono molteplici logback-Test.xml nel percorso, e lo fa con la sua configurazione di registrazione di default:
08:44:17,528 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
08:44:17,530 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:path/to/my/project/module2/logback-test.xml]
08:44:17,532 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-test.xml] occurs multiple times on the classpath.
08:44:17,533 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-test.xml] occurs at [file:/C:/path/to/my/project/module2/logback-test.xml]
08:44:17,533 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback-test.xml] occurs at [file:/C:/path/to/my/project/module1/logback-test.xml]
08:44:17,636 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
08:44:17,647 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
08:44:17,653 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
08:44:17,692 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
08:44:17,764 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to WARN
08:44:17,764 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
08:44:17,765 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.myproject] to TRACE
08:44:17,765 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [ch.qos.logback] to OFF
08:44:17,768 |-INFO in [email protected] - Registering current configuration as safe fallback point
Mi chiedo come potrei risolvere questo problema .. Voglio mantenere più configurazioni per ogni modulo; Immagino di non poter escludere un file da classpath; Voglio davvero tornare indietro per tacere di cose di cui sono a conoscenza. Come puoi vedere dalle ultime due righe, ho un intero pacchetto di logback su "OFF" nella mia configurazione, ma continua comunque a registrare dopo quel punto. Il modello di registro è anche diverso da quello che ho configurato in entrambe le configurazioni.
Il logback è configurato e utilizzato nel codice tramite SLF4J.
Durante l'esecuzione di test nel modulo genitore, nessuno di questi viene registrato (né INFO né messaggi WARN), quindi non posso dare la colpa a nient'altro che strani comportamenti di Logback.
la soluzione di esclusione risolve il problema solo in un caso: durante l'esecuzione di test su un modulo, quando tutte le altre dipendenze provengono dal repository. Tuttavia, l'esecuzione di un test unitario da Eclipse (immagino che questo sia il punto in cui Maven ha poco a che fare con le cose), o l'esecuzione di "clean test" sul genitore pom, non sono influenzate da questa configurazione. Sfortunatamente, i primi due sono i modi più frequenti per eseguire i miei casi di test. – uiron
Il tuo padre POM ha il suo 'logback-test' o è puramente un aggregatore? – artbristol
no, non c'è il codice nel genitore. Stavo pensando di avere appena configurato la registrazione in parent, ma voglio davvero avere impostazioni di registrazione diverse per ogni modulo. – uiron