CodeGym /Java курс /Модул 3 /Добавки в Log4j

Добавки в Log4j

Модул 3
Ниво , Урок
На разположение

Списък с добавки

Логерът ви позволява да записвате данни в няколко 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_OUTorSYSTEM_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
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION