web-dev-qa-db-fra.com

slf4j + Java.util.logging: comment configurer?

J'essaie d'utiliser slf4j + Java.util.logging. Je sais comment configurer le code source Java pour le faire via logger = LoggerFactory.getLogger(...) et logger.warn('...') ou peu importe.

Mais où est la documentation pour installer la configuration dans slf4j? Je suis très confus ... J'ai le manuel log4j et je connais les bases des adaptateurs de journalisation, mais je ne le suis tout simplement pas assurez-vous comment faire fonctionner cela avec slf4j + Java.util.logging.

à savoir:

  • quel fichier .properties et/ou JVM -D argument de ligne de commande dois-je spécifier pour le pointer vers mon fichier de configuration?

  • où est la documentation du fichier de configuration pour Java.util.logging?

  • l'utilisation de slf4j provoque-t-elle une modification de mon fichier de configuration? (c'est-à-dire quelque chose que je devrais déclarer différemment, par rapport à l'utilisation directe de Java.util.logging ou log4j directement)

32
Jason S

Voir ce tutoriel en juillet :

Java -Djava.util.logging.config.file = myLoggingConfigFilePath

Mais je recommanderais d'aller pour Logback

13
moritz

Il n'y a aucune configuration dans la couche slf4j. C'est juste une API, pour laquelle le backend doit fournir l'implémentation (plus ou moins).

Pour utiliser Java.util.logging en tant que backend slf4j, vous devez avoir slf4j-jdk14-mumle.jar de la distribution slf4j sur votre chemin de classe, et effectuer la magie indiquée dans le javadoc pour l'activer. Sinon, vous aurez une erreur d'exécution indiquant qu'aucune implémentation slf4j n'est active.

11

Fondamentalement, il vous suffit d'avoir slf4j-api.1.7.7.jar et slf4j-jdk14.1.7.7.jar sur votre chemin de classe. Et puis créez un fichier logging.properties pour votre application et définissez les propriétés système -Djava.util.logging.config.file = {path_to_logging.properties}

check ce tutoriel out qui vous donne des exemples de configuration de slf4j avec différents frameworks de journalisation tels que Java logger, log4j, logback etc.

2
ylu

Vous ne configurez pas SLF4J - vous devez lier et configurer le fournisseur. J'utilise Logback, qui a été spécialement conçu pour SLF4J. Vous pouvez également utiliser log4j. Voir l'entrée appropriée dans le manuel: http://www.slf4j.org/manual.html#binding

2
jabbie

J'ai abandonné Java se connectant dans le même but et j'ai opté pour la logback. Il n'y a rien à faire pour configurer logback avec SLF4J en fait. Il suffit de mettre logback.xml à la racine du bocal avec la configuration logback et mettez logback-XX.jar sur classpath.

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="warn">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Il s'agit d'une configuration pour la connexion à la console, mais le manuel de reconnexion contient plus d'exemples.

2