Wie set log level in log4j aus der properties-Datei in runtime
Wie kann ich log-level in log4j.xml
Verwendung von properties-Datei in runtime time
?
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p [%c{1}] [%t]: %m%n" />
</layout>
</appender>
<logger name="com.mypackage" additivity="false">
<level value="${level}" />
<appender-ref ref="ConsoleAppender" />
</logger>
Habe ich den Wert der $level
aus meiner vm arguments
indem der Wert als -Dlevel="warn"
so dass alle Nachrichten mit level warnen und oben bekam protokolliert.
Nun mein problem ist, ich habe, um den Wert der log-level aus einer properties
Datei statt vm arguments
? Wie kann ich dies tun?
P. S : ich bin mit gemeinsamen.logging in java-code mit log4j als Konfigurations-Mechanismus.
Können Sie bitte erläutern? Ich gehe davon aus, dass Sie möchten, legen Sie den Protokolliergrad Paket-Weise programmatisch, aber Sie wollen, dass in der log4j-properties-Datei?
Ich möchte, um anzugeben, Protokollierung Ebene aus einer properties-Datei (speziell für meine Anwendung , Nicht log4j.Eigenschaften) und setze diesen Wert in die log4j.xml (die ich benutze zum konfigurieren der Protokollierung in meiner Anwendung)
Ich möchte, um anzugeben, Protokollierung Ebene aus einer properties-Datei (speziell für meine Anwendung , Nicht log4j.Eigenschaften) und setze diesen Wert in die log4j.xml (die ich benutze zum konfigurieren der Protokollierung in meiner Anwendung)
InformationsquelleAutor Sam | 2012-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist der Weg zum change-log-Ebene dynamisch:
Verwenden eine Eigenschaft von custom-Datei verwenden Eigenschaften.loadFromXML' um eine Datei Lesen, die mit den Eigenschaften, dann bestimmen Sie eine Ebene mit diesen Eigenschaften.
Gut, Lesen Sie einfach Ihre eigene Datei mit den Eigenschaften und diese Eigenschaft verwenden, um eine neue Ebene. Siehe docs.oracle.com/javase/6/docs/api/java/util/...
InformationsquelleAutor tcb
Sam,
Ich bin mir nicht sicher, was Ihr bittet ist das default-Verhalten für log4j. Was Sie tun können, ist, das hinzufügen von Eigenschaften wie log4j.rootLogger=DEBUG in Ihrer Anwendung-Eigenschaften-Datei und Punkt log4j zu verwenden, Ihre Anwendung Datei Eigenschaften als die log4j-properties-Datei.
Können Sie erzwingen, log4j, um seine Konfigurationsdatei, indem Sie die folgenden vm-argument:
ODER
Beispiel log4j-properties-Datei ist wie folgt:
Können Sie auch das xml-format für den Datei-Eigenschaften.
Wenn Sie hinzufügen möchten Logger für log4j programmgesteuert (auf rumtime), das ist, was Sie hätte tun müssen:
Hoffe, das hilft.
Bearbeitet die Antwort zu zählen programmatische config.
Ich möchte hinzufügen Logger. Ich möchte nur auf set-Ebene für die Anmeldung zu
info
oderwarn
oderfatal
basierend auf den Benutzereinstellungen zur LaufzeitNein mein Fall ist, möchte ich
set the log level in a properties file and pick it up in log4j.mxl not using java code
also ich denke Logger.setLevel Methode helfen könnte. Das Schlupfloch ist, auch wenn Sie das logging-level in der xml-Datei zur Laufzeit, könnte es nicht einfach sein, zu Fragen, Logger, um die Einstellungen aus der xml-Datei, wenn die Anwendung bereits gestartet.
InformationsquelleAutor Neeraj
Können Sie set log-level in das System.setProperty durch Lesen aus Ihren dynamischen Eigenschaften der Datei, und es wird sich in log4j.
Prost!
InformationsquelleAutor Dheeraj Kumar