wtorek, 18 października 2011

Logi - Log4j

Chronologiczny zapis informacji z działania systemu. Dane zapisywane w pliku, bazie danych, czy wyświetlane na konsoli z informacjami o przebiegu działania programu, sytuacjach gdzie występują błędy, albo jakiekolwiek inne ważne wg nas informacje. Może się przydać gdy w działającym już programie wystąpi błąd, a odtworzenie sytuacji kiedy on wystąpił jest trudne. Logi mogą być zastępowane przez nowsze co jakiś czas.

Przykład:
Klasa w której wywołujemy zapis logów:
package logi;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4jTest {
// inicjalizacja logera
static final Logger logger = Logger.getLogger(Log4jTest.class); 
public static void main(String[] args) {

// plik konfiguracyjny
 PropertyConfigurator.configure("log4j.properties"); 

// wywołanie logów
 logger.trace("Info - TRACE");   
 logger.debug("Info - DEBUG");
 logger.info("Info - INFO");
 logger.warn("Info - WARN");
 logger.error("Info - ERROR");
 logger.fatal("Info - FATAL");
    }
}
Plik konfiguracyjny "log4j.properties":
#Ustalamy gdzie i jakie komunikaty beda wywolywane CA-konsola 
log4j.rootLogger=DEBUG, CA 

#Ustawienia dla konsoli
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
#Typ komunikatu
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p  %x - %m%n
Wyniki wypisany na konsoli:
1    [main] DEBUG   - Info - DEBUG
2    [main] INFO    - Info - INFO
2    [main] WARN    - Info - WARN
2    [main] ERROR   - Info - ERROR
2    [main] FATAL   - Info - FATAL 
Zapisanie loga do pliku.
Zmieniamy plik konfiguracyjny „log4j.properties
#Ustalamy gdzie i jakie komunikaty beda wywolywane CA-konsola 
log4j.rootLogger=DEBUG, CA, FA

#Ustawienia dla konsoli
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p  %x - %m%n

#Ustawienie dla pliku z logami
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=plikzlogami.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

#Ustawiamy poziom od ktorego komunikaty maja pojawiac sie w pliku
log4j.appender.FA.Threshold = WARN
Wyniki jakie otrzymamy w pliku. Plik „plikzlogami.log” stworzyliśmy w katalogu z projektem
1    [main] WARN  logi.Log4jTest  - Info - WARN
1    [main] ERROR logi.Log4jTest  - Info - ERROR
2    [main] FATAL logi.Log4jTest  - Info - FATAL
Hierarchia komunikatów loggera od najmniej ważnego:
  • TRACE,
  • DEBUG,
  • INFO,
  • WARN,
  • ERROR,
  • FATAL

Wyjaśnienie konwencji zapisu:
''%d %5p %c{2}:%L - %m%n''
  • %d – czas wystąpienia zdarzenia
  • %p – poziom zdarzenia, (5 - liczba znakow dla pola)
  • %c – nazwa loggera zdarzenia (liczba hierarchii od końca {x})
  • %L – numer linii w pliku źrodłowym
  • %m – opis zdarzenia
  • %n – sparator linii zależy od platformy (\n lub \r\n)

Brak komentarzy:

Prześlij komentarz