2
votes

Websphere Liberty: comment spécifier l'emplacement de configuration de log4j2?

J'essaie de dire à Websphere Liberty où se trouve mon fichier log4j2.xml , mais cela ne fonctionne pas.

Dans mon fichier jvm.options Je configure:

-Dlog4j.configurationFile=file:///${server.config.dir}/log4j2.xml

mais il semble que Liberty ne comprend pas la variable $ {server.config.dir} dans le fichier jvm.options. Le fichier se trouve dans le même répertoire que le fichier server.xml .

Comment spécifier l'emplacement log4j2.xml de Liberty?


0 commentaires

3 Réponses :


2
votes

Je pense que cela devrait être possible en créant une entrée de bibliothèque dans votre server.xml telle que:

<application id="test" name="test" type="ear" location="test.ear">
  <classloader commonLibraryRef="log4jLib" />
</application>

où le répertoire spécifié contient les propriétés log4j2 ou le fichier xml.

Puis spécifiez un classloader pour votre application comme ceci:

<library id="log4jLib">
   <folder dir="/opt/log4j2/config"/>
</library>


0 commentaires

1
votes

La variable $ {server.config.dir} est l'une des variables de configuration de serveur intégrées Liberty, celles-ci ne s'appliquent que dans le server.xml (et les configurations incluses).

Quand vous exécutez un serveur Liberty, user.dir est défini sur la même chose que $ {server.config.dir} , vous pouvez donc simplement spécifier le chemin relatif de votre fichier log4j2.xml dans jvm.options comme:

-Dlog4j.configurationFile=log4j2.xml


0 commentaires

1
votes

Il existe plusieurs façons de configurer log4j dans WebSphere. Outre la méthode d'entrées de bibliothèque mentionnée par pseudonyme , vous pouvez simplement déposer le fichier de configuration log4j2 dans le répertoire global de la bibliothèque à

< wlp/usr/servers//lib/global

Si des fichiers sont présents à l'emplacement ci-dessus au moment du démarrage d'une application et que cette application n'a pas d'élément de chargeur de classe configuré, l'application utilise ces bibliothèques. Si une configuration de chargeur de classe est présente, ces bibliothèques ne sont utilisées que si la bibliothèque globale est explicitement référencée.

Vous pouvez trouver plus de détails sur les bibliothèques globales dans ce lien

Bibliothèques partagées WebSphere Liberty


0 commentaires