tutorials.de Buch-Aktion 02/2012
Like Tree1Danke
  • 1 Beitrag von fassy
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1038
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    Hi Forum

    Ich habe eine simple Klasse welche Posts auf einen Web-Service absetzt und Antworten entgegen nimmt. Funktioniert alles einwandfrei. Dazu verwende ich:
    java.net.URL
    java.net.HttpURLConnection
    java.io.PrintWriter
    java.io.BufferedReader

    Die Klasse besitzt auch eine Instanz vom Typ java.util.Logger, damit ich irgendwelche fehlerhaften requests/responses loggen kann.

    So, alles wunderbar. Wenn ich nun aber in meiner logging.properties, java.util.logging.FileHandler.level = FINER setze, dann erhalte ich in meinen Logs jede Menge von:
    05.02.2010 11:25:27 sun.net.www.protocol.http.HttpURLConnection writeRequests
    FEIN: sun.net.www.MessageHeader@1f78ef17 pairs: {POST /xmlsvr.asp HTTP/1.1: null}{..........
    05.02.2010 11:25:27 sun.net.www.protocol.http.HttpURLConnection getInputStream
    FEIN: sun.net.www.MessageHeader@1c9a6907 pairs: {null: HTTP/1.1 200 OK}{Serve..........

    Einträge! Die will ich aber nicht, da ich eben Fehler logge etc... Nur ich hab keine Ahnung wie ich dieses Logging deaktiviere? Es sieht nämlich danach aus, dass dieses Logging direkt in der HttpURLConnection()-Klasse geschieht.

    Jemand eine Idee?
    cheerioh & Thx
    SiS
     

  2. #2
    fassy fassy ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    42
    Weil du Level = FINER schon im TRACE Level bereich bist... da wird dann jeder Scheiss mitgeloggt.

    The levels in descending order are:

    * SEVERE (highest value)
    * WARNING
    * INFO
    * CONFIG
    * FINE
    * FINER
    * FINEST (lowest value)

    http://java.sun.com/j2se/1.4.2/docs/...ing/Level.html
     

  3. #3
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    thx. d.h. es besteht keine Möglichkeit den Logger so zu konfigurieren, dass er nur meine Klassen loggt?

    cheerioh & Gruess
    SiS
     

  4. #4
    fassy fassy ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    42
    Du kannst den logger realitv beliebig konfigurieren, schau mal in die Docu:
    http://java.sun.com/j2se/1.4.2/docs/.../overview.html
    StehtimSchilf bedankt sich. 

  5. #5
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    Thx fassy

    Worauf fassy abzielte: java.util.logging Interface: Filter und die Methode isLoggable() implementieren:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    public class LogFilter implements Filter {
        
        /**
         * Liste von Wörtern, die nicht geloggt werden werden, wenn  diese
         * in einer Log-Message enthalten sind.
         */
        String[] discardTheseWords = null;
     
        public LogFilter(String[] discardTheseWords) {
            this.discardTheseWords = discardTheseWords;
        }
     
        public boolean isLoggable(LogRecord logRecord) {
            String msg = logRecord.getMessage();
            boolean doLogging = true;
            
            
            for (String s : discardTheseWords) {
                if (msg.indexOf(s) != -1) {
                    doLogging = false;
                    break;
                }
            }
     
            return doLogging;
        }
    }
    wunderbar, thx
    Geändert von StehtimSchilf (18.02.10 um 09:57 Uhr)
     

  6. #6
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    ehm noch ne Frage:

    mit obigem Code muss ich zuerst:
    Code :
    1
    2
    3
    4
    5
    
    LogFilter logFilter = new LogFilter(
       new String[]{"sun.net.www", "com.sun.activation"},
       new String[]{"sun.net.www", "com.sun.activation"});
    Logger log = new Logger.getLogger("sun.net.www.protocol.http.HttpURLConnection");
    log.setFilter(logFilter);

    Und dies für jeden einzelnen verschiedenen Logger.
    Kann ich irgendwie log.setFilter() auf alle vorhandenen Logger anwenden? Oder kann ich irgendwie über alle vorhandenen Logger iterieren? Wenn, dann könnte ich in der Iteration setFilter() anwenden. Oder kann ich da irgendwas im logging.properties setzen? habe jedoch dafür nix passendes gefunden!

    cheerioh & thx
    SiS
     

Ähnliche Themen

  1. java.util.logging.Logger & Verzeichnisse
    Von takidoso im Forum Java
    Antworten: 3
    Letzter Beitrag: 15.01.08, 15:25
  2. Antworten: 3
    Letzter Beitrag: 12.06.07, 08:05
  3. Java-Logger
    Von takidoso im Forum Java
    Antworten: 2
    Letzter Beitrag: 06.03.07, 16:56
  4. Verständnisprobleme mit java-Logger
    Von takidoso im Forum Java
    Antworten: 0
    Letzter Beitrag: 27.12.06, 12:02
  5. java.util.logging.logger + rmi
    Von OKShaitan im Forum Java
    Antworten: 0
    Letzter Beitrag: 27.08.04, 12:09