Anonymer Logger - kann man irgendwie eine komplexere Config hinkriegen?

Status
Nicht offen für weitere Antworten.

sirbender

Top Contributor
Es geht um java.util.logging.Logger.

Logger anonymousLogger = Logger.getAnonymousLogger();

Da ich ein Applet schreibe muss ich den anonymen Logger nehmen. Alles was ich machen kann ist setLevel zu setzen - nur leider merke ich grade wird auch das ignoriert. Es wird stur INFO und darueber geloggt. Kann ich irgendwie eine komplexere Configuration erreichen wie ich es normal tue via LogManager.getLogManager().readConfiguration(input); ?
 
Zuletzt bearbeitet:
wieso soll getLogger(String name) z.b. nicht gehen ?

und warum nur setLevel... es ist ein Logger, also kannst du alle Methoden von der Klasse nutzen ?
 
wieso soll getLogger(String name) z.b. nicht gehen ?

und warum nur setLevel... es ist ein Logger, also kannst du alle Methoden von der Klasse nutzen ?

Huhu...hab ich was von Applet gesagt? Spezielle Sicherheitsbedingungen (AccessException etc.) setzen vorraus, dass man gewisse Dinge nicht machen kann. So zum Beispiel auch: LogManager.getLogManager().readConfiguration(input);

java.security.AccessControlException: access denied (java.util.logging.LoggingPermission control)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.util.logging.LogManager.checkAccess(Unknown Source)
at java.util.logging.LogManager.readConfiguration(Unknown Source)


Nun frage ich mich halt ob ich irgendwie einen Formatter auf den anonymen Logger setzen kann.
 
Ich merke gerade das man mit dem Anonymen Logger:

1. Das Level hoeher setzen kann - also WARNING, SEVERE.
2. man aber nicht das Level runtersetzen kann. INFO ist das Minimum. FINE* LogMessages werden einfach nie angezeigt.

Echt nervig.
 
****

alles falsch... siehe naechster Post
 
Zuletzt bearbeitet von einem Moderator:
ok mein wissen von applets ist beschraenkt, aber meine Frage hast du dennoch nicht beantwortet...

Logger.getLogger(String name) - geht nicht ? keine ahnung ob der den Sicherheitscheck macht.

weiterhin - warum sollte der anonyme logger NUR setLevel verstehen ? scheitern die anderen methoden auch an den Permissions ?

Das Problem ist ich kann keinen der Logger gescheit konfigurieren - also z.B. kein fine grained Klassenbezogenes Logging wie ich es gewohnt bin.
 
Das Problem ist ich kann keinen der Logger gescheit konfigurieren - also z.B. kein fine grained Klassenbezogenes Logging wie ich es gewohnt bin.
ok du musst ihm einen eigenen Handler mitgeben.... loggt er wie du willst (jdf als applikation)
Java:
public class K {
    private static final Logger _logger = Logger.getAnonymousLogger();
    public static void main(String[] args) {
        _logger.setLevel(Level.FINEST);
        _logger.addHandler(new Handler() {
            public void publish(LogRecord record) {
                System.out.println(record.getMessage());
            }

            public void flush() {
            }

            public void close() throws SecurityException {
            }
        });
        _logger.setUseParentHandlers(false);
        _logger.fine("HUHU");
        _logger.severe("HUHU");
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben