Domanda

In relazione al questa domanda . Sembra che Glassfish sta esportando slf4j nella mia applicazione e ridefinendo la mia soluzione di registrazione. E 'possibile per me di ignorare la registrazione di Glassfish e avere la mia propria soluzione di registrazione hanno la precedenza? Dopo la ricerca, ho trovato solo modi per modificare il registro utilizzando logging.properties.

Non sono sposato con il mio attuale implementazione, ma sono interessato a farlo funzionare.

Grazie.

È stato utile?

Soluzione

Come suggerito nel l'altra risposta , provare a configurare GlassFish di utilizzare in primo luogo le classloader bambino prima di delegare. Nella sun-web.xml:

<sun-web-app>
  <class-loader delegate="false"/>
</sun-web-app>

Ma se questo funziona, questo è più una soluzione che una soluzione reale , l'applicazione non deve essere inquinato dalle associazioni SLF4J di fagiolo validation.jar e saldare OSGi-bundle.jar (almeno I credono così). Si dovrebbe forse sollevare un problema .

Aggiornamento: per gli archivi, la soluzione suggerita non funziona. Ma non ho potuto riprodurre il problema .

Altri suggerimenti

La risposta breve è, Glassfish fa qualche brutta ritocco logger, reindirizzando System.out e System.err al proprio registro. Non sono riuscito a fermarlo farlo, ma ho trovato un modo per raccogliere tutti i messaggi di log dei server e applicazioni in un unico registro slf4j mettendo le librerie SLF4J abbastanza presto nel classpath e la modifica delle logging.properties di Glassfish.

Per la risposta lunga, vedere questo post del blog .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top