{"id":16,"date":"2006-06-14T21:14:08","date_gmt":"2006-06-14T20:14:08","guid":{"rendered":"https:\/\/bob-team.de\/wordpress\/?p=16"},"modified":"2024-11-03T17:38:05","modified_gmt":"2024-11-03T16:38:05","slug":"logging-und-webstart","status":"publish","type":"post","link":"https:\/\/bob-team.de\/wordpress\/2006\/06\/14\/logging-und-webstart\/","title":{"rendered":"Java Logging"},"content":{"rendered":"<p>Beim Programmstart wird gepr\u00fcft, ob im <em>user.home<\/em> schon ein Verzeichnis f\u00fcr die Anwendung angelegt wurde. Wenn nicht wird es an dieser Stelle nachgeholt. Im zweiten Schritt werden die Einstellungen f\u00fcrs Logging geladen. Diese sind Bestandteil der Anwendung (und k\u00f6nnen sp\u00e4ter vom Anwender \u00fcberschrieben werden).<\/p>\n<pre lang=\"java\">\/\/ Verzeichnis pr\u00fcfen\r\nFile logDir = new File(System.getProperty(\"user.home\") + \r\n       System.getProperty(\"file.separator\") + \".app\");\r\nif(! logDir.exists()) logDir.mkdir();\r\n\/\/ Einstellungen laden\r\nString res = \"\/my\/app\/logging.properties\";\r\nInputStream is = getClass().getResourceAsStream(res);\r\nLogManager.getLogManager().readConfiguration(is);<\/pre>\n<p>Die Einstellungen f\u00fcrs Logging werden in einem Properties-File gespeichert. Folgendes Beispiel konfiguriert den <em>FileHandler<\/em> und legt f\u00fcr den <em>ConsolenHandler<\/em> einen <em>SimpleFormatter<\/em> fest.<\/p>\n<pre lang=\"java\">.level = OFF\r\n\r\nhandlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler\r\n\r\njava.util.logging.FileHandler.level = ALL\r\njava.util.logging.FileHandler.pattern = %h\/.app\/my.log\r\njava.util.logging.FileHandler.limit = 50000\r\njava.util.logging.FileHandler.count = 3\r\njava.util.logging.FileHandler.append = true\r\njava.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter\r\n\r\n# ggf. \"chcp 850\"\r\njava.util.logging.ConsoleHandler.encoding = Cp850\r\njava.util.logging.ConsoleHandler.level = ALL\r\njava.util.logging.ConsoleHandler.formatter = jul.SimpleFormatter\r\n\r\nmy.app.MyClass.level = FINE<\/pre>\n<p>siehe auch <a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/intl\/encoding.doc.html\">Supported Encodings<\/a><\/p>\n<p>Erh\u00e4lt man eine Meldung wie <em>Can&#8217;t set level for java.util.logging.ConsoleHandler<\/em> hat man vielleicht nur ein Leerzeichen hinter dem Wert mit angegeben.<\/p>\n<p>Um einen Logger nutzen zu k\u00f6nnen, leitet man diesem vom Root-Logger ab.<\/p>\n<pre lang=\"java\">private static java.util.logging.Logger logger = \r\n      java.util.logging.Logger.getLogger(\"my.class.name\");<\/pre>\n<h3>Webstart<\/h3>\n<p>Die Ausgabe einer Webstart-Anwendung wird unter <em>%userdir%\\Anwendungsdaten\\Sun\\Java\\Deployment\\log<\/em> geschrieben. Vorausetzung ist, das das Protokollieren angeschaltet ist. Unter <em>Start \/ Ausf\u00fchren \/ javaws \/ Men\u00fc Bearbeiten \/ Einstellungen \/ Erweitert \/ Debugging<\/em> kann die Protokollierung konfiguriert werden. Die Log-Datei <em>javaws.log<\/em> wird automatisch rotiert.<\/p>\n<h3>Links<\/h3>\n<p><a href=\"http:\/\/java.sun.com\/j2se\/1.4.2\/docs\/guide\/util\/logging\/\">Java Logging Overview<\/a><\/p>\n<p><a href=\"http:\/\/tomcat.apache.org\/tomcat-5.5-doc\/logging.html\">Logging in Tomcat 5.5<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beim Programmstart wird gepr\u00fcft, ob im user.home schon ein Verzeichnis f\u00fcr die Anwendung angelegt wurde. Wenn nicht wird es an dieser Stelle nachgeholt. Im zweiten Schritt werden die Einstellungen f\u00fcrs Logging geladen. Diese sind Bestandteil der Anwendung (und k\u00f6nnen sp\u00e4ter vom Anwender \u00fcberschrieben werden). \/\/ Verzeichnis pr\u00fcfen File logDir = new File(System.getProperty(&#8222;user.home&#8220;) + System.getProperty(&#8222;file.separator&#8220;) + [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-java","entry"],"_links":{"self":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":7,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"predecessor-version":[{"id":3888,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/16\/revisions\/3888"}],"wp:attachment":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}