Wie konfiguriert log4j zum loggen nur info-Meldungen und höher?
Ich nicht verwenden, config oder xml-Dateien zur Konfiguration von log4j, da es keine Notwendigkeit, Sie zu konfigurieren tief. Ich brauche nur zu drucken, Nachrichten an die Konsole. also ich mache Folgendes:
BasicConfigurator.configure();
und zu drucken, nur als info und höher die Nachrichten, die ich tun:
Logger LOG = Logger.getLogger(MyClass.class)
LOG.setLevel(Level.INFO);
Aber dennoch sehe ich debug-Meldungen in die Konsole zu. Aber ich brauche nur info und eigentlich Fehlermeldungen gedruckt werden.
Wie dies zu tun?
UPD: ich erstellt eine config Datei, mit der die enthält, wie in der Anleitung beschrieben hier:
Handbuch die folgenden:
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
Ich legte es um die com.messagedna
In jeder Klasse und ich brauche logger schrieb ich Folgendes:
Properties props = new Properties();
try {
props.load(new FileInputStream("/log4j.properties"));
} catch (Exception e){
LOG.error(e);
}
PropertyConfigurator.configure(props);
aber wenn ich meine app bekomme ich die folgende:
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.
Ich kann nicht arbeiten mit solchen Konzepten. Meinst du, wo die config Datei ist, oder was anderes?
InformationsquelleAutor Nikitin Mikhail | 2013-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nur bei der Sicherheitsstufe für Nachrichten angemeldet mit dem logger für
MyClass.class
jedoch keine Meldungen im debug-level auf andere Logger wird immer noch gedruckt.Was Sie wirklich tun müssen, ist, um das log-level auf der Konsole, log-handler (die verantwortlich ist für das drucken aller log-Meldungen auf der Konsole). Jedoch dies zu tun, während Sie
BasicConfigurator
wird ziemlich schwierig sein zu tun, Sie sind besser dran bewegt zu haben, Ihre logging-Konfiguration angegeben in einer properties-Datei (die ist viel flexibler).Würde ich raten, die Arbeit durch den log4j-logging configuration tutorial - dies wird Ihnen helfen, setzen Sie zusammen genau die Konfiguration, die Sie möchten, und sollte beweisen, eine lohnende Investition Ihrer Zeit. Allerdings, wenn Sie erhalten möchten diese schnell fertig sind, versuchen Sie, den Inhalt unter der Datei
log4j.properties
(Beispiel genommen von hier):Dann ändern Sie Ihren code, um Folgendes zu tun:
Diese finden Sie unter
java.util.Properties
- sorry sollte deutlich gemachtWenn ich deine Variante bekomme ich die folgende: log4j:WARN No appenders gefunden werden konnte, der für den logger (com.messagedna.server.util.Config). log4j:WARN Bitte initialisieren Sie die log4j-Systems richtig. log4j:WARN Siehe logging.apache.org/log4j/1.2/faq.html#noconfig für mehr info.
Laut dem link in der Fehlermeldung, "No appenders für logger" passiert, wenn die Konfigurationsdatei nicht gefunden werden kann - hast du den Pfad zu der Datei korrekt? Die Konfiguration ist die Einstellung der root-logger, daher sollte es ein appender für den logger
com.messagedna.server.util.Config
wenn die Konfiguration gelesen wird.ok, ich konfiguriert die Einstellungen für jede Klasse und immer noch die gleiche Ausgabe
InformationsquelleAutor robjohncox
Log4j konfigurieren.Eigenschaften:
Ich sehe. und wohin soll ich diese Datei? zu dem Paket, das ich logger?
Ok Aussehen: stackoverflow.com/questions/8965946/..., aber ich empfehle es nicht, warum komplizieren alles, wenn Sie es nicht brauchen
es mag einfacher zu haben, diese in den code, aber Sie finden es viel mehr leistungsstarke und flexible verschieben der config in eine Datei (diese wird sich mehr und mehr als nützlich, Ihre Anwendung wächst) und es ist wirklich nicht viel Aufwand zu bewegen, zur Verwendung einer Konfigurations-Datei.
Wie Sie für Ihr Projekt benötigen!! @robjohncox bietet Ihnen die alternative
InformationsquelleAutor surfealokesea
Da, die Sie verwenden möchten, es zu tun, nur durch code
Hier eine alternative.
Hierzu am start, eine statische code-Initialisierung funktioniert
Having said that, es gibt keine Entschuldigung dafür, nicht mit log4j.xml. Es ist sehr einfach zu verwenden.
jede Klasse, die LoggerFactory
InformationsquelleAutor S Kr