2017-10-17 10 views
0

Voici ma configuration log4jlog4j ne pas écrire les journaux

#log4j.additivity.org.apache.qpid=false 

log4j.rootLogger=DEBUG, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.threshold=DEBUG 
log4j.appender.console.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n 

log4j.logger.javax.jms=DEBUG 
log4j.logger.org.apache.qpid=DEBUG 
log4j.logger.org.apache.qpid.amqp_1_0=DEBUG 
log4j.logger.org.apache.qpid.amqp_1_0.jms=DEBUG 

puis dans le code

String log4jConfigFile = System.getProperty("user.dir") + File.separator + "log4j.properties"; 
    PropertyConfigurator.configure(log4jConfigFile); 
    logger.debug("this is a debug log message"); 

mon message de débogage this is a debug log message ne reçoivent imprimé mais les messages du journal de org.apache.qpid ne reçoivent pas imprimé sur la console

<dependency> 
     <groupId>org.apache.qpid</groupId> 
     <artifactId>qpid-amqp-1-0-client-jms</artifactId> 
     <version>0.22</version> 
    </dependency> 

EDIT Je suis un débutant en java ... Les dépendances de journalisation que j'ai ajoutées. Ai-je besoin d'ajouter un paramètre pour rediriger les journaux sl4j vers log4j?

<slf4j-version>1.6.6</slf4j-version> 
    <log4j-version>1.2.17</log4j-version> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>${log4j-version}</version> 
    </dependency> 
+0

Je suis assez sûr que apache org.apache.qpid utilise slf4j pour la journalisation, avez-vous configuré le classeur __slf4j__ pour utiliser log4j comme implémentation? Avez-vous essayé d'ajouter par exemple le jar log4j-slf4j-impl-2.0.jar? – gtosto

+0

@gtosto ajouté les détails que vous avez besoin d'éditer .. aussi je suis novice à java, ai-je besoin d'un autre paramètre de configuration quelque part pour rediriger sl4j à log4j –

+0

si vous le pouvez: Je vous suggère d'utiliser une version plus récente du qpid amqp client qui s'appuie sur le slf4j. Sinon, comme indiqué par @ rob-godfrey, vous devez configurer le cadre de journalisation java intégré. Voir sa réponse. – gtosto

Répondre

0

Le (dépréciée) qpid-amqp-1-0-client-jms client utilisé java.util.logging, et non log4j. Pour citer un mail je renvoyais en 2014 à la liste de diffusion [email protected]:

vous pouvez l'activer en définissant la propriété système Java java.util.logging.config.file pour pointer vers un fichier qui ressemble à quelque chose comme ceci:

handlers=java.util.logging.FileHandler FRM.level=ALL 
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter 
java.util.logging.SimpleFormatter.format=[%1$tc] %4$s: %5$s%n 

java.util.logging.FileHandler.level=ALL` 

# (The output file is placed in the directory 
# defined by the "user.home" System property.) 
java.util.logging.FileHandler.pattern=%h/qpid-jms-%u.log` 

Lorsque vous exécutez le client, il devrait alors générer un fichier appelé Qpid-jms-0.log dans votre répertoire, avec une sortie qui ressemble quelque chose comme:

[Mon Feb 24 18:45:58 CET 2014] FINE: RECV[/127.0.0.1:5672|0] : 
SaslMechanisms{saslServerMechanisms=[ANONYMOUS]} 

Notez que l'enregistrement dans cet ancien client est vraiment très minime et idéalement vous devriez plutôt migrer votre code au client pris en charge Qpid JMS pour 1.0 https://qpid.apache.org/components/jms/index.html AMQP qui n'utilise slf4j, mais utilise une syntaxe différente de configuration pour les connexions et les files d'attente .