Списък с добавки
Логерът ви позволява да записвате данни в няколко file наведнъж. Такива изходни потоци от данни се наричат appenders (от append). Има доста стандартни добавки, така че ще покрием само най-популярните:
Допълнители | Описание | |
---|---|---|
1 | Конзола | Отпечатва данни на конзолата |
2 | файл | Извежда данни във файл |
3 | DailyRollingFile | Извежда данни във файл, файлът се презаписва циклично |
4 | Асинхронен | Позволява ви да записвате данни в друг appender асинхронно |
5 | Гнездо | Записва данни в конкретен сокет |
6 | JDBC | Записва съобщения в базата данни с помощта на JDBC протокола |
7 | JPA | Записва съобщения в базата данни с помощта на JPA протокола |
8 | HTTP | Изпраща събития чрез HTTP протокол към отдалечен сървър |
9 | SMTP | Съхранява съобщенията в буфер и след това ги изпраща като имейл |
Добрата documentация за всички добавки е на официалния им уебсайт
И по-долу ще разгледаме най-популярните и прости от тях.
ConsoleAppender
Най-простият appender еConsoleApender
. Както може би се досещате, той просто пише съобщенията си на конзолата. Той има няколко интересни параметъра за нас:
Атрибути | ||
---|---|---|
1 | име | Име на добавката |
2 | филтър | Позволява ви да филтрирате някои съобщения |
3 | оформление | Указва форматирането на съобщенията при извеждане |
4 | мишена | Указва къде да се напише: SYTEM_OUT orSYSTEM_ERR |
Много е лесно да го конфигурирате:
<?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
Най-полезният appender еFileAppender
. За разлика от него ConsoleAppender
той записва съобщенията си във файл. Което е много полезно, когато приложението ви работи някъде на сървъра. Има много параметри, т.к трябва да може да записва файлове на различни операционни системи.
Но ние ще разгледаме само най-популярните от тях.
1 | име | Указва името на добавката |
2 | филтър | Позволява ви да филтрирате някои съобщения |
3 | оформление | Указва форматирането на съобщенията при извеждане |
4 | име на файл | Указва името на file, където да се пишат съобщения |
5 | добавям | Ако true , тогава съобщенията ще бъдат добавени към стария журнал, ако false - лог файлът ще се създава отново при всяко стартиране на приложението. |
6 | размер на буфера | Задава размера на буфера в byteове |
7 | immediateFlush | Ако true , тогава всяко съобщение всъщност се записва на диска веднага (без буфер). Дневникът започва да работи бавно, но това ви спестява от загуба на данни, когато програмата се срине. |
Вече знаете How да работите добре с файлове, така че тези настройки не са нищо ново за вас. Конфигурирането на такъв регистратор е дори по-лесно от конзолен регистратор:
<?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
Най-популярният appender еRollingFileAppender
. За разлика от FileAppender
него, той ви позволява да разделите дневника на много малки файлове. Това е много важно за големи трупи. Освен това ви позволява да зададете правила Howво да правите със старите файлове, след като са започнали да се записват нови.
И този appender има почти сто различни настройки. Повече за тях можете да научите на линка .
Помислете за най-популярните атрибути на това приложение:
Атрибути | ||
---|---|---|
1 | име | Указва името на добавката |
2 | филтър | Позволява ви да филтрирате някои съобщения |
3 | оформление | Указва форматирането на съобщенията при извеждане |
4 | име на файл | Указва името на file, където да се пишат съобщения |
5 | filePattern | Указва шаблон за именуване на архивни файлове, които вече не се записват |
6 | политика | Указва conditionто, когато файлът трябва да започне да се презаписва |
7 | стратегия | Описва Howво да се прави със стари файлове: архив, история за колко дни да се съхранява и т.н. |
Ето един добър пример:
<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>
Параметърът filePattern
указва шаблон за архиви на стари регистрационни файлове. Има и две, когато се задействат, ще бъде записан нов файл:
TimeBasedTriggeringPolicy
– ще работи, ако започне нов ден (текущата дата се променя)SizeBasedTriggeringPolicy
– ще работи, ако размерът на file достигне 250 MB
GO TO FULL VERSION