Java-obtenez un LogManager personnalisé à partir de Logger.getLogger () d'un autre pot?


J'avais un seul projet qui utilisait log4j.

Mais j'ai dû séparer mon projet en deux... Donc, le premier est le "noyau" et l'autre est l'application elle-même.

Mon LogManager personnalisé est toujours dans le "projet d'application", mais j'ai besoin de me connecter à l'aide de mon LogManager ce qui se passe dans le "core-project".

Je veux tout enregistrer à partir de ma bibliothèque (core.jar) dans mon log4j personnalisé.

Comment puis-je faire ce travail? Ça fonctionne de cette façon? Ou devrais-je déplacer ma coutume LogManager dans le projet de base? Si oui, comment puis-je faire en sorte que mon application se connecte au LogManager du noyau.pot?

Je ne sais pas si je suis clair... voici un dessin:

Mon objectif

Pour le moment, dans mon noyau, je fais simplement ( java.util.la journalisation):

Logger.getLogger(this.getClass().getName()).log(Level.INFO, "This is a log message");

Je ne sais pas s'il est utile de le savoir, mais je définis mes propriétés log4j par programme, dans ma classe LogManager, comme ( slf4j . Logger + log4j)

public class LogManager{
    private LogManager(){
        //I set it here
    }
}

Merci!

Author: anthomaxcool, 2016-04-14

1 answers

Si vous utilisez java.util.logging.Logger pour obtenir le gestionnaire de journaux, vous pouvez définir une propriété système, java.util.logging.manager, qui remplacera le gestionnaire de journaux par défaut par la classe nommée par cette propriété système.

Documentation: https://docs.oracle.com/javase/8/docs/api/java/util/logging/LogManager.html

Bien sûr, vous avez besoin du chemin de classe défini sur votre autre fichier Jar où se trouve la nouvelle classe log manager.

 0
Author: markspace, 2016-04-14 18:31:17