Mam pewien obiekt z którego mogę jedynie wywoływać metody. Obiekt domyślnie wyrzuca szereg komunikatów na konsole. Czy jest jakaś możliwość, aby Logger przechwytywał te komunikaty, tak aby jedynie szły do pliku?
Możesz przekierować wyjścia do pliku. System.setOut(...), lub system.setErr(...). Nie wiesz zapewne czy komunikaty są wypisywane przez System.out.println(), czy System.err.println().
Dzięki za odpowiedź, ale to są tego typu komunikaty.
2011-02-18 13:47:18.336 DEBUG u - Setting curves server parameters to transport client, login [DEMO2bjKfc]
Jakie znaczenie ma treść komunikatów?
try
{
System.setOut(new PrintStream(new File("log.txt")));
}
catch(Exception e)
{
System.out.println(e);
}
i to się pojawiało na konsoli (wypisywane poleceniem System.out.println() lub System.out.print()) zostanie zapisane do pliku.
Pierwsze pytanie - czy jest to aplikacja webowa, czy też standalone?
Jeżeli webowa, to zmiana zależy od serwera aplikacji - np. JBoss ma w katalogu z konfiguracją plik z ustawieniami logowania.
Jeżeli standalone, to zakładam, że ta obca klasa jest w osobnym pliku .jar.
Sprawdź, czy w tym jarze jest plik "log4j.properties".
Jeżeli tak, to najprawdopodobniej wystarczy zmienić ustawienie log4j.
Możesz zrobić jedną z dwóch rzeczy:
- Zmienić log4j.properties w tym pliku .jar, aby logował od poziomu INFO (przynajmniej dla tej klasy)
- Dodać w swoim jarze log4j.properties (z logowaniem na poziomie INFO) i umieścić swój jar w classpath przed tym obcym jarem