Lista anexelor

Loggerul vă permite să salvați date în mai multe fișiere simultan. Astfel de fluxuri de date de ieșire sunt numite appenders (de la append). Există destul de multe apendice standard, așa că le vom acoperi doar pe cele mai populare:

Anexe Descriere
1 Consolă Imprimă datele pe consolă
2 fişier Trimite date într-un fișier
3 DailyRollingFile Trimite date într-un fișier, fișierul este suprascris ciclic
4 Async Vă permite să scrieți date într-un alt appender în mod asincron
5 Priză Scrie date într-un anumit socket
6 JDBC Scrie mesaje în baza de date utilizând protocolul JDBC
7 JPA Scrie mesaje în baza de date utilizând protocolul JPA
8 HTTP Trimite evenimente prin protocolul HTTP către un server la distanță
9 SMTP Stochează mesajele într-un buffer, apoi le trimite ca e-mail

O documentație bună pentru toți aplicanții se află pe site-ul lor oficial

Și mai jos le vom considera pe cele mai populare și simple dintre ele.

ConsoleAppender

Cea mai simplă anexă esteConsoleApender . După cum probabil ați ghicit, pur și simplu își scrie mesajele pe consolă. Are câțiva parametri interesanți pentru noi:

Atribute
1 Nume Numele adjunctului
2 filtru Vă permite să filtrați unele mesaje
3 aspect Specifică formatarea mesajelor la ieșire
4 ţintă Specifică unde se scrie: SYTEM_OUTsauSYSTEM_ERR

Este foarte ușor de configurat:


    <?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

Cea mai utilă anexă esteFileAppender . Spre deosebire de ConsoleAppenderel își scrie mesajele într-un fișier. Ceea ce este foarte util atunci când aplicația dvs. rulează undeva pe server. Are o mulțime de parametri, pentru că trebuie să poată scrie fișiere pe diferite sisteme de operare.

Dar le vom lua în considerare doar pe cele mai populare dintre ele.

1 Nume Specifică numele anexului
2 filtru Vă permite să filtrați unele mesaje
3 aspect Specifică formatarea mesajelor la ieșire
4 nume de fișier Specifică numele fișierului în care să scrieți mesajele
5 adăuga Dacă true, atunci mesajele vor fi adăugate la vechiul jurnal, dacă false- fișierul jurnal va fi recreat de fiecare dată când aplicația este pornită.
6 dimensiunea memoriei tampon Setează dimensiunea tamponului în octeți
7 immediateFlush Dacă true, atunci fiecare mesaj este de fapt scris pe disc imediat (fără un buffer). Jurnalul începe să funcționeze lent, dar acest lucru vă scutește de pierderea datelor atunci când programul se blochează.

Știi deja cum să lucrezi bine cu fișierele, așa că aceste setări nu sunt nimic nou pentru tine. Configurarea unui astfel de logger este chiar mai ușoară decât a unui logger de consolă:


    <?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

Cel mai popular apendice esteRollingFileAppender . Spre deosebire de FileAppenderacesta, vă permite să împărțiți jurnalul în multe fișiere mici. Acest lucru este foarte important pentru buștenii mari. În plus, vă permite să setați reguli pentru ce să faceți cu fișierele vechi după ce au început să fie scrise altele noi.

Și acest apendice are aproape o sută de setări diferite. Puteți afla mai multe despre ele la link .

Luați în considerare cele mai populare atribute ale acestui apendice:

Atribute
1 Nume Specifică numele anexului
2 filtru Vă permite să filtrați unele mesaje
3 aspect Specifică formatarea mesajelor la ieșire
4 nume de fișier Specifică numele fișierului în care să scrieți mesajele
5 filePattern Specifică un model de denumire pentru fișierele de arhivă care nu mai sunt scrise
6 politică Specifică condiția în care fișierul ar trebui să înceapă să fie suprascris
7 strategie Descrie ce trebuie făcut cu fișierele vechi: arhivă, istoric pentru câte zile trebuie păstrate etc.

Iată un exemplu bun:


<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>

Parametrul filePatternspecifică un șablon pentru arhivele de jurnalele vechi. Există, de asemenea, două, atunci când sunt declanșate, un fișier nou va fi scris:

  • TimeBasedTriggeringPolicy– va funcționa dacă începe o nouă zi (data curentă se schimbă)
  • SizeBasedTriggeringPolicy– va funcționa dacă dimensiunea fișierului ajunge la 250 MB