Comment configurer log4j pour consigner uniquement les messages d'infos et plus?
Je n'utilisez pas la configuration ou les fichiers xml de configuration de log4j comme il n'est pas nécessaire de le configurer en profondeur. J'ai seulement besoin d'imprimer des messages à la console. donc ce que je fais:
BasicConfigurator.configure();
et à l'impression d'infos et plus de messages je fais ceci:
Logger LOG = Logger.getLogger(MyClass.class)
LOG.setLevel(Level.INFO);
Mais néanmoins je vois les messages de débogage dans la console. Mais j'ai seulement besoin d'info et effectivement les messages d'erreur à l'impression.
Comment faire?
UPD: j'ai créé un fichier de configuration qui contient, comme décrit dans le tutoriel ici:
manuel suivantes:
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %m%n
log4j.logger.com.messagedna.facade=INFO
log4j.logger.com.messagedna.receiver=INFO
log4j.logger.com.messagedna.util=INFO
log4j.logger.com.messagedna.parser=INFO
Je l'ai mis à la com.messagedna
Dans chaque classe, j'ai besoin de logger, j'ai écrit le texte suivant:
Properties props = new Properties();
try {
props.load(new FileInputStream("/log4j.properties"));
} catch (Exception e){
LOG.error(e);
}
PropertyConfigurator.configure(props);
mais quand je lance mon application je reçois le texte suivant:
log4j:WARN No appenders could be found for logger (com.messagedna.server.util.Config).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Je ne peux pas fonctionner avec de tels concepts. Voulez-vous dire où le fichier de config est ou quoi d'autre?
OriginalL'auteur Nikitin Mikhail | 2013-07-03
Vous devez vous connecter pour publier un commentaire.
Vous ne réglez le niveau pour les messages enregistrés à l'aide de l'enregistreur de données pour
MyClass.class
, cependant, tous les messages au niveau de débogage sur d'autres enregistreurs va encore faire imprimer.Ce que vous avez vraiment besoin de faire est de définir le niveau de journalisation sur le journal de la console gestionnaire (qui est responsable de l'impression de tous les messages de log de la console). Toutefois, ce faisant, tout en utilisant
BasicConfigurator
va être assez difficile à faire, vous êtes mieux de déménager pour avoir votre configuration de l'enregistrement spécifié dans un fichier de propriétés (ce qui est beaucoup plus souple).Je vous conseille de travail par le biais de la log4j la configuration de la journalisation tutoriel - ce qui va vous aider à assembler exactement la configuration que vous souhaitez, et devrait se révéler un bon investissement de votre temps. Toutefois, si vous voulez que ce soit fait rapidement, essayez d'ajouter le contenu ci-dessous dans le fichier
log4j.properties
(exemple pris à partir d'ici):Et la modification de votre code pour effectuer les opérations suivantes:
Cela se trouve à
java.util.Properties
- désolé devrait avoir bien expliquéSi j'utilise votre variante-je obtenir suivantes: log4j:AVERTIR Aucune appenders pourrait être trouvé pour enregistreur (com.messagedna.serveur.util.Config). log4j:AVERTIR Veuillez initialiser le log4j système correctement. log4j:AVERTIR Voir logging.apache.org/log4j/1.2/faq.html#noconfig pour plus d'info.
Selon le lien dans le message d'erreur, "Pas de appenders pourrait être trouvé pour logger" se produit lorsque le fichier de configuration ne peut pas être trouvé - avez-vous définir le chemin d'accès au fichier correctement? La configuration est la configuration de la racine de l'enregistreur, par conséquent, il doit être un appender pour l'enregistreur de
com.messagedna.server.util.Config
si la configuration est lu.ok, j'ai configuré les paramètres pour chaque classe et j'ai toujours le même résultat
OriginalL'auteur robjohncox
Configurer log4j.propriétés:
Je vois. et où vais-je mettre ce fichier? pour le paquet-je utiliser l'enregistreur?
Ok regarde: stackoverflow.com/questions/8965946/... mais je ne le recommande pas, pourquoi compliquer les everithing lorsqu'il n'est pas besoin
il peut sembler plus simple que cela dans le code, mais vous trouverez qu'il est beaucoup plus puissant et flexible pour déplacer la config dans un fichier (ce qui va devenir de plus en plus utile en tant que votre demande augmente) et c'est vraiment pas beaucoup d'efforts pour passer à l'utilisation d'un fichier de configuration.
Que vous avez besoin pour votre projet!! @robjohncox est de vous donner l'alternative
OriginalL'auteur surfealokesea
Puisque vous souhaitez utiliser pour le faire que par le code
Heres une alternative.
Ce faire, au début, un code statique de l'initialisation de travail
Après avoir dit que, theres aucune excuse pour ne pas l'utiliser log4j.xml. Il est très facile à utiliser.
toute classe qui implémente LoggerFactory
OriginalL'auteur S Kr