Logger und Ausgabe auf Syste.out verhindern

Hallo,

ich habe einen Logger und möchte, dass keine Ausgabe auf System.out gemacht wird.

Hierzu habe ich folgendes gemacht:
Ich habe in meinem Logger 2 Handler definiert. Einen FileHandler und einen ConsoleHandler. Den LogLevel für den FileHandler habe ich mit setLevel() auf Level.INFO gestellt und den für den ConsoleHandler auf Level.OFF
Beide Hanlder habe ich mit addHandler() dem Logger hinzugefügt.

Rufe ich nun mein Programm mit java in einem CMD-Prompt auf, so erfolgt trotzdem eine Fehlerausgabe im Fenster.

Warum ? Wie kann ich die Ausgabe verhindern.
Das Programm soll zeitgestuert über Batch angestartet werden und da sind Ausgaben auf dem Bildschirm scheiße.

Lasse ich das Programm im JBuilder laufen erfolgen keine Ausgaben in der Konsole des JBuilders ???. Hier funktionert also alles richtig.

Ich habe auch schon versucht das logging.properties File zu ändern. Aber auch das brachte keinen Erfolg.

Danke
Albert

Hallo,

kann mir denn keiner helfen ???

Albert

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Albert,

ich habe zwar (noch) keine Lösung aber erst mal ein paar Fragen:

  • Welches Logger API meinst Du?
  • Wie lautet die Fehlermeldung?

Vermutung: Das Logger API wirft die Fehlermeldung. Vermutlich ist es über die IDE korrekt konfiguriert, aber über die Console eben nicht.

Zur Not einfach die System.getProperties am Anfang in beiden Situation ausgeben und vergleichen.

Gruß,
Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
also ich verwende „java.util.logging.*“. Mein Programm hat keinerlei Ausgabe über System.out . Alle Meldungen werden mit „logger.log ( level , message )“ ins Log geschrieben.
Starte ich nun mein Programm im CMD über eine BAT-Datei mit
„java progname“, so erscheinen die Meldungen die ich ins Log schreibe auch im Console-Fenster. Wieso ??

Mein Code zieht wie folgt aus:

try
{
String fileName;
int i = logFile.indexOf(".");
if(i > 0)
{
fileName = logFile.substring ( 0 , i ) ;
fileName = fileName + „.%g“ + logFile.substring ( i ) ;
}
else
fileName = logFile + „.%g“ + „.log“ ;

f = new FileHandler ( logPath + fileName ,
5000000 , 5 , true ) ;

f.setFormatter ( new RTCDefaultFormatter () ) ;

Handler ch = new ConsoleHandler () ;

// Ausgabe auf der Console
ch.setLevel ( Level.parse ( „OFF“) ) ;
logger.addHandler ( ch ) ;

if ( logLevel == null )
{
logLevel = „INFO“ ;

}
else if ( logLevel.equalsIgnoreCase ( „off“ ) )
{
logging = false ;

}
f.setLevel ( Level.parse ( logLevel ) ) ;
logger.addHandler ( f ) ;
logging = true ;

}
catch ( IOException e )
{
System.out.println ( e ) ;
}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Das sollte dir helfen:

 logger.setUseParentHandlers(false);

http://forum.java.sun.com/thread.jspa?forumID=31&thr…

Gruss, Patrick

Super vielen Dank.
Die Sache funktioniert perfekt.

Weißt Du nun auch noch einen Trick wie man die *.LCK Dateinen, die beim loggen entstehen los wird.

Albert

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]