CodeGym/Kursy Java/Moduł 3/Aplikatory w Log4j

Aplikatory w Log4j

Dostępny

Lista dołączających

Logger umożliwia zapisywanie danych do kilku plików jednocześnie. Takie wyjściowe strumienie danych nazywane są appenderami (od append). Istnieje sporo standardowych programów dołączających, więc omówimy tylko te najpopularniejsze:

dołączacze Opis
1 Konsola Drukuje dane do konsoli
2 Plik Wyprowadza dane do pliku
3 DailyRollingFile Wysyła dane do pliku, plik jest cyklicznie nadpisywany
4 asynchroniczny Umożliwia asynchroniczne zapisywanie danych do innego programu dołączającego
5 Gniazdo elektryczne Zapisuje dane do określonego gniazda
6 JDBC Zapisuje komunikaty do bazy danych przy użyciu protokołu JDBC
7 WZP Zapisuje komunikaty do bazy danych przy użyciu protokołu JPA
8 http Wysyła zdarzenia za pośrednictwem protokołu HTTP do zdalnego serwera
9 SMTP Przechowuje wiadomości w buforze, a następnie wysyła je jako e-mail

Dobra dokumentacja dla wszystkich osób dołączających znajduje się na ich oficjalnej stronie internetowej

A poniżej rozważymy najpopularniejsze i najprostsze z nich.

ConsoleAppender

Najprostszym appenderem jestConsoleApender . Jak można się domyślić, po prostu zapisuje swoje wiadomości do konsoli. Ma dla nas kilka interesujących parametrów:

Atrybuty
1 nazwa Nazwa dołączającego
2 filtr Umożliwia filtrowanie niektórych wiadomości
3 układ Określa formatowanie komunikatów podczas wyprowadzania
4 cel Określa, gdzie wpisać: SYTEM_OUTlubSYSTEM_ERR

Konfiguracja jest bardzo łatwa:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
    <PatternLayout pattern="%m%n"/>
    </Console>
</Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="STDOUT"/>
    </Root>
</Loggers>
</Configuration>

FileAppender

Najbardziej użytecznym appenderem jestFileAppender . W przeciwieństwie do ConsoleAppendertego, że zapisuje swoje wiadomości do pliku. Co jest bardzo przydatne, gdy Twoja aplikacja działa gdzieś na serwerze. Ma wiele parametrów, ponieważ musi być w stanie zapisywać pliki w różnych systemach operacyjnych.

Ale rozważymy tylko najpopularniejsze z nich.

1 nazwa Określa nazwę dołączającego
2 filtr Umożliwia filtrowanie niektórych wiadomości
3 układ Określa formatowanie komunikatów podczas wyprowadzania
4 Nazwa pliku Określa nazwę pliku, w którym mają być zapisywane komunikaty
5 dodać Jeśli true, to komunikaty będą dodawane do starego dziennika, jeśli false- plik dziennika będzie odtwarzany przy każdym uruchomieniu aplikacji.
6 Rozmiar bufora Ustawia rozmiar bufora w bajtach
7 natychmiastowePłukanie Jeśli true, to każda wiadomość jest faktycznie zapisywana na dysku natychmiast (bez bufora). Dziennik zaczyna działać powoli, ale chroni to przed utratą danych w przypadku awarii programu.

Wiesz już, jak dobrze pracować z plikami, więc te ustawienia nie są dla Ciebie nowością. Konfiguracja takiego rejestratora jest jeszcze prostsza niż w przypadku rejestratora konsoli:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
    <File name="MyFile" fileName="logs/app.log">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    </File>
</Appenders>
<Loggers>
    <Root level="error">
    <AppenderRef ref="MyFile"/>
    </Root>
</Loggers>
</Configuration>

RollingFileAppender

Najpopularniejszym appenderem jestRollingFileAppender . W przeciwieństwie do FileAppenderniego umożliwia podzielenie dziennika na wiele małych plików. Jest to bardzo ważne w przypadku dużych kłód. Ponadto umożliwia ustawienie zasad postępowania ze starymi plikami po rozpoczęciu pisania nowych.

A ten appender ma prawie sto różnych ustawień. Więcej informacji na ich temat można znaleźć pod linkiem .

Rozważ najpopularniejsze atrybuty tego appendera:

Atrybuty
1 nazwa Określa nazwę dołączającego
2 filtr Umożliwia filtrowanie niektórych wiadomości
3 układ Określa formatowanie komunikatów podczas wyprowadzania
4 Nazwa pliku Określa nazwę pliku, w którym mają być zapisywane komunikaty
5 plikWzór Określa wzorzec nazewnictwa dla plików archiwów, które nie są już zapisywane
6 polityka Określa warunek, kiedy plik powinien zacząć być zastępowany
7 strategia Opisuje, co zrobić ze starymi plikami: archiwum, historię przez ile dni przechowywać itp.

Oto dobry przykład:

<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
    </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
    <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

Parametr filePatternokreśla szablon dla archiwów starych logów. Istnieją również dwa, po uruchomieniu zostanie zapisany nowy plik:

  • TimeBasedTriggeringPolicy– zadziała, jeśli zacznie się nowy dzień (aktualna data się zmieni)
  • SizeBasedTriggeringPolicy– zadziała, jeśli rozmiar pliku osiągnie 250 MB
Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy