# java.util.Logger



## Hogo (28. Aug 2003)

Hey,

  ich habe letztens die Logging API gefunden, und gleich ausprobiert. Mein Problem liegt darin, dass ich einen Logger mit einem MemoryHandler der in eine Datei reinschreibt erzeugt habe, der Logger aber trotzdem auf die Konsole zusätzlich postet. Wenn ich mir aber alle Handler des Loggers ausgeben lasse, befindet sich nur der MemoryHandler darin. Wo liegt nun die Schwachstelle?

Danke für jeden Hinweis

Hogo

Code:


```
...
  public static Logger logger = Logger.getLogger("test.Test");
  public static MemoryHandler memHan = null;
  ...
  private void init() {
    try {
           FileHandler fileHan = new FileHandler("logger.txt");
           fileHan.setFormatter(new MyFormatter());
           memHan = new MemoryHandler(fileHan, 1000, Level.ALL);
           logger.addHandler(memHan);
           logger.setLevel(Level.ALL);
    } catch (SecurityException e1) {
           e1.printStackTrace();
    } catch (IOException e1) {
           e1.printStackTrace();
    }
    java.util.GregorianCalendar cal = new java.util.GregorianCalendar();
    cal.setTimeInMillis(System.currentTimeMillis());
    logger.info("Hello World");//Dieser Text sollte nur in der Datei stehen. Kommt aber auch
                                         // auf Konsole!!!!!
  }
  ...
```


----------



## DTR (1. Sep 2003)

Aus deinem Code geht hervor, das du nur den MemoryHandler hinzufügst, also ist auch nur der drinn.


----------



## omosde (3. Sep 2003)

Standardmaessig wird fuer die Konfiguration des LogManagers eine Datei names "logging.properties" in $JAVAHOME/jre/lib/ verwendet. In dieser ist standardmaessig ein ConsoleHandler eingestellt!

Um dies jetzt zu aendern, musst du beim Start die Eigenschaft java.util.logging.config.file auf ein neues file umlenken oder das bestehende file aendern

java -Djava.util.logging.config.file=dein.file DeineApp

Wenn du einen Weg findest, wie du dies Programmtechnisch machst, dann sag bescheid!

MfG
omosde


----------



## Hogo (9. Sep 2003)

Hey,

  erstmal danke für die Antworten. Jetzt weiß ich, wo ich anfangen kann zu suchen.
Programmtechnisch geht das bestimmt auch. Ich schau mal.

Danke.

Gruß,

Hogo


----------



## Hogo (11. Sep 2003)

Programmtechnisch ist das sehr einfach zu lösen.
Das LogManager-Objekt hat die Methode readConfiguration(InputStream).
Code mäßig sieht das dann so aus:
...
  LogManager lm = LogManager.getLogManager();
  lm.readConfiguration(new FileInputStream("<die logging.config Datei>"));
...

Das funzt so.

Gruß,

Hogo


----------



## omosde (11. Sep 2003)

Danke, werd ich gleich mal testen!


----------

