Log4j gоставляеся с довольно большим количеством аппендеров.
Конечно написать свой аппендер зачастую очень просто.но чтобы не изобретать колесо заново давайте рассмотрим какие
есть стандартные аппендеры.
Вывод на консоль
org.apache.log4j.ConsoleAppender - наиболее часто используемый во время разработки аппендер. Выводит
сообщения на консоль. Что логируется и в каком формате зависит от Layout
4 следующие аппендера наиболее часто используются в _продакшен системах
org.apache.log4j.FileAppender - просто записывает логируемые сообщения в файл. К недостаткам этого
аппендера следует отнести то что размер файла лога постоянно растёт и может поучиться один огромный файл.
org.apache.log4j.DailyRollingFileAppender - тоже записывает сообщения в файл но каждый день создаёт
новый файл с таким же именем. в старом изменяет имя файла - добавляет год, месяц и день к имени.
org.apache.log4j.RollingFileAppender - этот аппендер тоже записывает сообщения в файл. и
для создаёт новые файлы. но не каждый день как предыдущий а при достижении опеределённого размера
(по умолчнию 10 МБ), старые
файлы переименовывает - добавляет к имени файла индекс;1, 2, 3 и т.д. Максимальный размер индекса задаётся
настройкой maxBackupIndex. При достижении инднекса maxBackupIndex старые файлы перетираются новыми.
Таким образом размер логов можно строго ограничить.
org.apache.log4j.net.SMTPAppender - посылает сообщения по электронной почте. Очень полезный аппендер для
приложений
высоконадёжных для которых ошибка в логе - это экстренный случай.
Вспомогательные Аппендеры
org.apache.log4j.AsyncAppender - вспомогательный аппендер. Позволяет записывать сообщения асинхроно.
Использует буфер для увеличения производительности.
org.apache.log4j.varia.NullAppender - этот аппендер отличается гениальной простотой. Как можно догадаться
из названия все сообщения он просто выбрасывает (записывает в Null). Если вам интересно написать свой
аппендер то посмотрите исходный код - хорошее начала для изучения.
смотрет
Интеграция с существующими логерами операционной системы
org.apache.log4j.nt.NTEventLogAppender- Пишет логи в виндовый журнал. обязательно положите
NTEventLogAppender.dll в директорию перечисленную в PATH.
org.apache.log4j.net.SyslogAppender пишет логи в Syslog
- такие логи широко испольуется в IP сетях. Стандарт
для Unix и Linix систем.
Другие логеры
org.apache.log4j.jdbc.JDBCAppender записывает сообщения в БД через jdbc. Уже буферезирован.
Как написано в javadoc этот аппендер могут полностью заменить в следующих версия log4j.
org.apache.log4j.lf5.LF5Appender записывает сообщения на ui консоль написанную на Swing.
org.apache.log4j.WriterAppender - позволяет записывать не только в файл но и в произвольный
java.io.Writer или java.io.OutputStream. Похоже через xml его создать нельзя, а предназначен для расширения.
Остальные аппендеры
Остальные аппендеры я ни разу не применял и думаю они вообще редко применяются. Если
вдруг какой-то из них вас
заинтересовал предлагаю юратиться к
англоязычной документации.
org.apache.log4j.net.SocketAppender
org.apache.log4j.net.SocketHubAppender
org.apache.log4j.net.TelnetAppender
org.apache.log4j.net.JMSAppender - посылает JMS сообщения