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_OUT sauSYSTEM_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 ConsoleAppender
el îș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 FileAppender
acesta, 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 filePattern
specifică 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