schwobeseggl.de

ein Neigschmecktr in Baden

  • Artikel
  • Fotos
  • Impressum

Java Applets und java.util.logging

Posted at August 14, 2008

So, heute habe ich mich mit der internen Logging-Bibliothek von Java rumgeaergert. Aber fangen wir mal von vorne an. In meinem Praxissemester programmiere ich gerade ein paar Perfomancemessungen in ein Applet ein. Prinzipiell ein simpler Arbeitsgang, aber ich wollte jetzt halt gleich alles ‘schoen’ machen. Nachdem mich ein Freund darauf hingewiesen hat das System.out.println() doch nicht das Wahre ist (“fooo, lame, nutz nen Loggingframework. FTW!!!!11einself”), habe ich mich jetzt fuer java.util.logging entschieden. Kann genau das was ich will. Gut, also angefangen:

package foo;
import java.util.logging.*;
public class PerformanceDebug {
	private static Logger logger = Logger.getLogger("foo.PerformanceDebug");
	public PerformanceDebug() {
		Handler handler = new ConsoleHandler();
		handler.setLevel(Level.FINE);
		logger.addHandler(handler);
		logger.setLevel(Level.ALL);
		foobar();
	}
	public void foobar() {
		logger.info("Hello World");
	}
}

Gut. Oder auch nicht, hat naemlich nicht funktioniert. Hat irgendwelche PermissionExceptions geschmissen. Bissle Recherche: Applets laufen in einem beschraenktem Modus, d.h. sie duerfen z.B. nicht irgendwohin schreiben, z.B. mit dem ConsoleHandler. Aber gut, weitere Recherche ergab, dass ich den ConsoleHandler auch weglassen kann, dann schreibt er einfach nach STDOUT, d.h. in die Java Console. Gut.

package foo;
import java.util.logging.*;
public class PerformanceDebug {
	private static Logger logger = Logger.getLogger("foo.PerformanceDebug");
	public PerformanceDebug() {
		logger.setLevel(Level.ALL);
		foobar();
	}
	public void foobar() {
		logger.info("Hello World");
	}
}

Jop, hat erstmal nix gebracht, immer noch Fehlermeldungen (kompilieren tut das uebrigens alles prima). Der ConsoleHandler war gar nicht das einzige Problem, im Applet funktioniert auch Logger.getLogger(“package.class”) nicht. Aber dafuer gibts dann ja Logger.getAnonymousLogger().

package foo;
import java.util.logging.*;
public class PerformanceDebug {
	private static Logger logger = Logger.getAnonymousLogger();
	public PerformanceDebug() {
		logger.setLevel(Level.ALL);
		foobar();
	}
	public void foobar() {
		logger.info("Hello World");
	}
}

Wieder einen Schritt weiter und immer noch nicht am Ziel. Jetzt laeuft es zwar im Applet, aber die Ausgabe ist haesslich (im Sinne von: Ich mag sie nicht :) ). Aber dafuer gibts ja java.util.logging.Formatter, damit kann man eigene Formate schreiben. Also flugs eine Subklasse verfasst:

package foo;
import java.util.logging.*;
public class PerformanceDebug {
	private static Logger logger = Logger.getAnonymousLogger();
	public PerformanceDebug() {
		logger.setLevel(Level.ALL);
		foobar();
	}
	public void foobar() {
		logger.info("Hello World");
	}

	public class FooFormatter extends Formatter {

		public String format(LogRecord record) {
			return "Foo:"
				+ record.getMessage()
				+ "\n";
		}
	}
}

Das klappt in jeder Standalone-Applikation und im Applet Viewer, aber im Applet selber gehts wieder nicht. Ein Spass mit den Sicherheitsbeschraenkungen von Applets, da wird das Laden des Formatters einfach unterbunden und eine Exception geschmissen. Also kann ich nicht das machen was ich will. Und Sun hat sich wohl gedacht das man in Applets keine eigenen Formatter braucht. Applets sind eh tot. Genau. Naja, so bringt man auch nen Tag rum, mit wilden Rumprobieren, googlen und fluchen. In diesem Sinne. Feierabend fuer heute.

Ähnliche Artikel:

  1. __FUNCTION__ in Java
  2. public, private und “privileged” in Javascript
  3. Statische Maps
  4. Java Collection Interface
  5. Javascript-Klassen und Objekte

Praxissemester
  • Digg
  • Stumbleupon
  • Del.icio.us
  • Reddit
  • Technorati

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

One Response to “Java Applets und java.util.logging”
  • eisdiele says:
    17. August 2008 at 09:43

    Schreib mal lieber mehr Sachen die ich verstehe(n will) ;)

Search

Archives

  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • March 2007
  • March 2006
  • November 2005
  • October 2005
  • September 2005

Categories

  • Arbeit
  • PC & Accessoires
    • Linux
  • Pfadfinder
  • Programmiersprachen
    • C#
    • Java
    • PHP
  • Sonstiges
  • Spass
  • Studium
    • Diplomarbeit
    • Praxissemester
    • USA
  • Uncategorized
  • Wordpress
  • Recent Posts

    • URLdump
    • Flagge zeigen
    • London
    • $N zufällig gewählte Dateien
    • Hamburg – Jetzt in echt und mit Bildern
  • Tags

    Addon Amerika Apple Auto bahn bild Computer dell Deutschland eisdiele Extension fahrrad Film firefox flash geburtstag google Indiana indianapolis Internet itunes Java Javascript junit kaputt karlsruhe Kino Kinofilm Laptop last.fm Linux Microsoft Mozilla PHP Praxissemester skype Spass system Thunderbird umzug USA windows wohnung Wordpress Zoll
  • Links

    • almightyfish - A new world order
    • DPSG Stamm Holzgerlingen - Die Homepage des Pfadfinderstamms der DPSG Holzgerlingen
    • eisdiele’s blog - Der Blog eines tollen Typs. Ich mein, er ist Pfadfinder, solche Leute sind per se einfach spitze …
    • Jule’s Blog - Ein Blog von der Jule :) in good ol’ Karlsruhe
    • Stephan’s Blog - Ein Komolitone

Powered by Wordpress | WP Premium theme by Premium Wordpress Themes
Copyright 2010 schwobeseggl.de. All rights reserved

  • Artikel
  • Fotos
  • Impressum