1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/matrixy-hentai-logger

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

hentai-logger

В различных средах развёртывания для приложений обычно настраиваются разные уровни ведения журнала. Обычно при разработке используется уровень отладки, а в рабочей среде — уровень ошибок, поскольку вывод на уровне отладки слишком объёмен, и большинство проблем уже решено на этапе разработки. В рабочей среде не так много ситуаций, требующих отладки. Однако если возникает проблема, мы хотим отслеживать журнал, но приложение находится на уровне журнала ошибок, это становится трудно сделать, можно только изменить конфигурацию и перезапустить приложение для решения проблемы.

hentai-logger был разработан для решения этой проблемы. При настройке log4j можно настроить несколько Appender, каждый из которых имеет свой собственный уровень вывода журнала. Журналы уровня ошибок по-прежнему выводятся в файл прокрутки журнала, а журналы уровня отладки выводятся в cn.org.hentai.logger.core.PhantomAppender.

При инициализации cn.org.hentai.logger.core.PhantomAppender он прослушивает порт 1122. Когда есть сетевое соединение с этим портом, PhantomAppender записывает системные журналы в реальном времени в соединение сети. Если соединения нет, системные журналы будут полностью отброшены. Таким образом, журналы можно просматривать в любое время, не занимая дополнительного места для хранения.

Зависимости

  • Java 1.6 (на самом деле это не имеет значения, никаких новейших функций не используется)
  • log4j, неизвестно, есть ли проблемы совместимости версий
  • других зависимостей нет, никакие сторонние компоненты не используются

Описание конфигурации log4j

platform.name=hentai
system.name=hentai-logger

# Настройка регистратора log4j.rootLogger = DEBUG, Console, E

# Настройка PhantomAppender
log4j.appender.Console = cn.org.hentai.logger.core.PhantomAppender
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.threshold = DEBUG
log4j.appender.Console.layout.ConversionPattern = [${platform.name}] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] [${system.name}] - %c{1} - %m%n

# Настройка имени E
log4j.appender.E = org.apache.log4j.ConsoleAppender
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.threshold = ERROR
log4j.appender.E.layout.ConversionPattern = [${platform.name}] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] [${system.name}] - %c{1} - %m%n

log4j.logger.cn.org.hentai = DEBUG

Использование

Просто скопируйте все классы.

Тестирование

  1. Запустите cn.org.hentai.logger.app.TestApp, который будет непрерывно выводить журналы, каждые 10 миллисекунд — один журнал отладки и каждую секунду — один журнал ошибок.
  2. Используйте сетевой клиент, такой как netcat или telnet, чтобы подключиться к порту 1122, например, nc localhost 1122, и вы сразу увидите журналы, созданные приложением.

Производительность

  • При включении более низкого уровня журнала система будет генерировать больше журналов. Log4j имеет некоторые потери производительности при создании строки журнала и при записи в OutputStream. Этот Appender будет иметь полную потерю производительности только при наличии соединения, в остальное время будет только потеря производительности из-за форматирования текста журнала.
  • Этот Appender всегда поддерживает два потока: один для прослушивания соединений, другой для распределения журналов по соединениям.
  • На моём компьютере (i7 6700k, 32 ГБ, Samsung SSD 970 EVO Plus) при полной скорости вывода журналов загрузка процессора составляет 20%, за 10 секунд создаётся 62 МБ содержимого журнала.
  • Не подключайтесь к порту мониторинга вывода журналов при плохом сетевом соединении, старайтесь подключаться только локально, избегайте использования полосы пропускания и сетевых задержек, вызванных накоплением сообщений, и старайтесь не иметь слишком много подключений.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/matrixy-hentai-logger.git
git@api.gitlife.ru:oschina-mirror/matrixy-hentai-logger.git
oschina-mirror
matrixy-hentai-logger
matrixy-hentai-logger
master