JavaRush /Blog Java /Random-FR /Nous connectons la journalisation à notre projet JavaRush...
Дмитрий Яковенко
Niveau 35
Москва

Nous connectons la journalisation à notre projet JavaRush (slf4f et log4j)

Publié dans le groupe Random-FR
Vous pouvez lire comment connecter Maven à votre projet JavaRush dans cet article . Ce qui suit suppose que vous savez comment procéder. Si nous voulons utiliser slf4j, alors nous avons besoin d'une dépendance :
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
Après cela, nous faisons :
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
Et nous obtenons l'erreur :
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Ce qui est globalement logique. slf4j est un wrapper, mais autour de quoi l'avons-nous enveloppé ? Rien? Eh bien, nous avons eu une erreur. Vous pouvez l'envelopper autour de l'un des éléments suivants : log4j, util.logging, NOP, System.err, JCL, logback. Plus de détails dans les instructions originales . Regardons l'exemple de log4j et System.err : 1) Commençons par quelque chose de simple, avec System.err . Pour cela, ajoutez celle-ci (slf4j-simple) à la dépendance précédente (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
Nous prenons les mêmes versions, au 10 mai 2021 c'est la 1.7.30. Si vous prenez des dépendances de https://mvnrepository.com/ , n'oubliez pas de supprimer
<scope>test</scope>
Sinon, vos journaux ne fonctionneront que dans les tests. 2) Essayons maintenant de configurer log4j , pour cela nous devons ajouter 2 dépendances : log4j lui-même et une couche entre slf4j et log4j (slf4j-log4j12). Cela ressemble à ceci :
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
Il est clair que nous devons supprimer (slf4j-simple) afin que slf4j ne se trompe pas quant au type d'enregistreur avec lequel il doit fonctionner. Et laissez (slf4j-api), puisque c'est slf4j. Concernant les 2 dépendances ajoutées. log4j nous ajoutons l'ancien (de mai 2012, je ne sais pas pourquoi, vous pouvez expérimenter avec d'autres). Sa version est la 1.2.17. Pour que slf4j fonctionne avec, vous avez besoin d'un calque approprié - slf4j-log4j12, où les derniers caractères (12) désignent la version log4j. Dans ce cas, la version de slf4j-api et slf4j-log4j12 devrait être la 1.7.30 - la dernière version stable pour le moment. Après avoir connecté les dépendances et mis à jour le projet Maven. Pour que log4j fonctionne, vous avez besoin de 2 choses supplémentaires : 1) Configurez un fichier de configuration. Nous lisons, sélectionnons, copions. 2) Lisez la configuration de log4j avant de travailler :
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
Eh bien, ou où vous avez le fichier. Si vous souhaitez voir tous les journaux, n'oubliez pas de définir le niveau de journalisation sur TOUS. Nous ajoutons au CV - log4j & slf4j. Tu es magnifique! Si cela vous a aidé, aimez, abonnez-vous, sonnez !)))
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION