{"id":1678,"date":"2013-01-30T14:06:41","date_gmt":"2013-01-30T12:06:41","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1678"},"modified":"2013-01-30T14:06:41","modified_gmt":"2013-01-30T12:06:41","slug":"wrde-geloggt-werden","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/01\/wrde-geloggt-werden\/","title":{"rendered":"W&uuml;rde geloggt werden?"},"content":{"rendered":"<p>Das Logging-Framwork versucht so schnell wie m\u00f6glich zu entscheiden, ob eine Nachricht bei einem eingestellten Log-Levels geloggt werden soll oder nicht. Ist die Stufe in der Produktion zum Beispiel auf WARNING, sind INFO-Meldungen zu ignorieren. Problematisch aus Performance-Sicht sind zum Beispiel aufw\u00e4ndig aufgebaute Log-Nachrichten, die dann sowieso nicht geloggt werden. Der Plus-Operator bei Strings geh\u00f6rt nicht zu den beachtlichen Zeitfressern, doch ein <\/p>\n<p>log.info( &quot;Open file: &quot; + filename );<\/p>\n<p>f\u00fchrt zur Laufzeit immer zu einer String-Konkatenation, egal, ob die erzeugte Nachricht sp\u00e4ter geloggt wird oder nicht.<\/p>\n<p>JUL bietet zur Umgehung des Problems zwei L\u00f6sungen. Als erstes bietet die Logger-Klasse eine Testmethode boolean isLoggable(Level level), \u00fcber die ein schneller Test durchgef\u00fchrt werden kann:<\/p>\n<p>if ( log.isLoggable(Level.INFO) )<\/p>\n<p>&#160; log.info( &quot;Open file: &quot; + filename );<\/p>\n<p>Nat\u00fcrlich kann info(\u2026) nicht wissen, dass es auf jeden Fall loggen soll, daher findet der Test noch einmal statt. Eine allgemeine \u00dcberpr\u00fcfung f\u00fcr alle Logging-Ausgaben bietet sich daher nicht an, sondern nur dann, wenn eine aufw\u00e4ndige Operation im Logging-Fall ausgef\u00fchrt werden soll.<\/p>\n<p>Die zweite M\u00f6glichkeit ist neu in Java 8. Sie nutzt Objekte vom Typ Supplier, die eine Implementierung enthalten, also etwa die Konkatenation. Im Prinzip h\u00e4tte Oracle das auch schon vor Java 8 integrieren k\u00f6nnen, doch erst Lambda-Ausdr\u00fccke f\u00fchren zu einer kompakten Schreibweise. Das sieht zum Beispiel so aus:<\/p>\n<p>log.info( () -&gt; { &quot;Open file: &quot; + filename } );<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Logging-Framwork versucht so schnell wie m\u00f6glich zu entscheiden, ob eine Nachricht bei einem eingestellten Log-Levels geloggt werden soll oder nicht. Ist die Stufe in der Produktion zum Beispiel auf WARNING, sind INFO-Meldungen zu ignorieren. Problematisch aus Performance-Sicht sind zum Beispiel aufw\u00e4ndig aufgebaute Log-Nachrichten, die dann sowieso nicht geloggt werden. Der Plus-Operator bei Strings geh\u00f6rt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11,66],"tags":[],"class_list":["post-1678","post","type-post","status-publish","format-standard","hentry","category-insel","category-java-8"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1678"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1678\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}