{"id":364,"date":"2014-10-05T12:13:46","date_gmt":"2014-10-05T12:13:46","guid":{"rendered":"http:\/\/192.168.2.32:8082\/?p=364"},"modified":"2014-10-05T12:13:46","modified_gmt":"2014-10-05T12:13:46","slug":"log4j","status":"publish","type":"post","link":"https:\/\/www.dev-metal.ch\/?p=364","title":{"rendered":"Log4J"},"content":{"rendered":"<p><!--more-->Hinweis: Dies ist ein Auszug aus Wikipedia.de: <a href=\"http:\/\/de.wikipedia.org\/wiki\/Log4j\" target=\"_blank\">log4j<\/a> auf wikipedia<\/p>\n<h1>Funktionsweise<\/h1>\n<p>Anstatt auftretende Fehler und Infomeldung auf Standardausgabe auszugeben, wird die Nachricht dem Loggingsystem \u00fcbergeben und gleichzeitig eine Einteilung der Wichtigkeit vorgenommen. Der Programmierer muss sich beim Erstellen des Programms nur um die Wichtigkeit der Meldungen Gedanken machen. Die Filterung und Art der Ausgabe kann zur Laufzeit konfiguriert werden. Die Stufen reichen von<\/p>\n<pre class=\"lang:sh decode:true \">TRACE, DEBUG, INFO, WARN, ERROR bis FATAL<\/pre>\n<p>Trace ist am unwichtigsten und Fatal kommt einem schweren Programmfehler gleich. Ausnahmen bilden die beiden Stufen ALL und OFF, die das Logging entweder komplett deaktivieren (OFF) oder alle Meldungen ungefiltert ausgeben (ALL).<\/p>\n<p>In der Konfigurationsdatei kann die Ausgabe je nach Wichtigkeit gefiltert werden, wobei dabei die gew\u00e4hlte Wichtigkeit und alle wichtigeren Stufen geloggt werden. Die Reihenfolge der Priorit\u00e4ts-Stufen stellt sich wie folgt:<\/p>\n<pre class=\"lang:sh decode:true\">ALL &lt; TRACE &lt; DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL &lt; OFF<\/pre>\n<p>Wenn WARN als Schwellwert f\u00fcr die Filterung angegeben wird, dann werden alle h\u00f6herwertigen Meldungen ausgegeben (sprich: WARN, ERROR und FATAL). Mittels Appender kann je nach Wunsch auf Standardausgabe, in eine Datei, ins Systemlog oder in beliebige andere Ziele geschrieben werden bzw. in alle gleichzeitig.<\/p>\n<p>F\u00fcr die Einstufung der Priorit\u00e4t gelten folgende Richtwerte.<\/p>\n<table class=\"wiki-table\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<th>level<\/th>\n<th>Beschreibung<\/th>\n<\/tr>\n<tr class=\"table-odd\">\n<td>ALL<\/td>\n<td>Alle Meldungen werden ungefiltert ausgegeben<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>TRACE<\/td>\n<td>ausf\u00fchrlicheres Debugging (seit 1.2.12)<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>DEBUG<\/td>\n<td>allgemeines Debugging (Methode DiesUndDas wurde mit Parameter SoUndSo aufgerufen &#8230;)<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>INFO<\/td>\n<td>allgemeine Informationen (Programm gestartet, Programm beendet, Verbindung zu Host Foo aufgebaut, Verarbeitung dauerte SoUndSoviel Sekunden \u2026)<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>WARN<\/td>\n<td>Auftreten einer unerwarteten Situation<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>ERROR<\/td>\n<td>Fehler (Exception wurde gefangen. Bearbeitung wurde alternativ fortgesetzt)<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>FATAL<\/td>\n<td>Kritischer Fehler, Programmabbruch<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>OFF<\/td>\n<td>Logging ist deaktiviert<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1>Appender<\/h1>\n<table class=\"wiki-table\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<th>Appender-Arten<\/th>\n<th>Beschreibung<\/th>\n<\/tr>\n<tr class=\"table-odd\">\n<td>ConsoleAppender<\/td>\n<td>Gibt auf Standardausgabe aus<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>FileAppender<\/td>\n<td>Schreibt in eine Datei<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>RollingFileAppender<\/td>\n<td>Beginnt eine neue Datei ab einer gewissen Gr\u00f6\u00dfe<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>DailyRollingFileAppender<\/td>\n<td>Beginnt zu gewissen Zeiten mit einer neue Datei<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>SyslogAppender<\/td>\n<td>Loggt mittels Syslog-Dienst<\/td>\n<\/tr>\n<tr class=\"table-even\">\n<td>NTEventLogAppender<\/td>\n<td>Schreibt ins Ereignisprotokoll des Windows-Systems<\/td>\n<\/tr>\n<tr class=\"table-odd\">\n<td>SMTPAppender<\/td>\n<td>Schickt bei gewissen Meldungen eine Mail.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Des Weiteren kann das Format der Nachrichten individuell konfiguriert werden. Neben der reinen Nachricht kann mittels Muster zus\u00e4tzlich Wichtigkeit, Datum, Loggername, Klassenname, Methodenname bis zur genauen Codezeile ausgegeben werden. Die Namen der Logger k\u00f6nnen zwar theoretisch beliebig sein, praktisch entspricht der Name des Loggers dem Namen der Klasse. Dadurch l\u00e4sst sich auch die Ausgabe einer bestimmten Klasse oder eines bestimmten Paketes separat filtern und ausgeben.<\/p>\n<p>Ein weiteres n\u00fctzliches Feature ist der Mapped Diagnostic Context. Dabei wird einer Contextvariablen ein Wert zugewiesen und in der Konfigurationsdatei kann darauf referenziert werden. Dabei hat jeder Thread seinen eigenen Context und kann zus\u00e4tzliche Informationen wie z. B. die Adresse des Clients bei einer Serveranwendung protokollieren.<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[6],"tags":[15],"class_list":["post-364","post","type-post","status-publish","format-standard","hentry","category-techdocs-diverses","tag-java"],"modified_by":"ralph","_links":{"self":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=364"}],"version-history":[{"count":1,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/364\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=\/wp\/v2\/posts\/364\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dev-metal.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}