2017-08-07 4 views
0

J'essaie de configurer la journalisation par application déployée (guerre) sur Payara 4.1 en utilisant l'instruction suivante dans ma configuration de logback.xml.Logback 1.7.1, JEE7 - insertFromJNDI ne parvient pas à récupérer appName

<insertFromJNDI env-entry-name="java:app/AppName" as="appName"/> 
<contextName>${appName}</contextName> 

je reçois de logback lors du démarrage de ce message:

INFO in ch.qos.logback.classic.LoggerContext[appName_IS_UNDEFINED] 

et le contexte n'est pas réglé à la valeu correcte (par exemple myApplicationName) mais si je le fais sur un EJB aléatoire:

@Resource(lookup = "java:app/AppName") 
private String appName; 

Je reçois la valeur attendue. Je soupçonne que la configuration de Logback essaye de récupérer la valeur avant qu'elle soit définie par le conteneur. Il n'est pas défini de manière spécifique, il est par défaut le nom spécifié lors du déploiement. Existe-t-il un moyen d'obtenir Logback pour le récupérer APRÈS avoir été initialisé correctement?

Répondre

1

ok, j'ai trouvé l'erreur. avait appName au lieu de AppName dans la configuration de logback.

<insertFromJNDI env-entry-name="java:app/appName" as="appName"/> 
<contextName>${appName}</contextName> 

si simple, mais depuis que je l'ai lu plusieurs fois, j'espère que cela aidera le s.o. pour trouver une erreur similaire. Le logback BTW n'ajoute rien (par exemple java: env) au nom d'entrée env envoyé.

+0

un mot de prudence. J'ai un composant qui utilise '@ Startup' pour un amorçage et je ne comprends pas celui-ci pour définir le contexte de logback correctement via JNDI. – Markus

+0

même avant qu'une @DataSourceDefinition (name = "java: global/MyApp/MyDataSource") initialise le premier enregistreur qui se fatigue à récupérer le nom AppName non existant via JNDI alors. – Markus