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

OSCHINA-MIRROR/apache-log4j

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

Apache Log4j 1

Уважаемые участники сообщества Log4j!

Работая над выпусками Apache Log4j версии 2 за декабрь 2021 года, комитет по управлению проектами (PMC) службы ведения журналов Apache получил запросы о пересмотре решения об окончании срока службы (EOL) Apache Log4j версии 1, последний выпуск которого состоялся в 2012 году.

Мы рассмотрели эти запросы и обсудили различные варианты. В конечном итоге мы пришли к единогласному решению, что единственным устойчивым подходом является продолжение фокусировки на Log4j версии 2. PMC настоящим подтверждает объявление EOL от 2015 года для Log4j версии 1, что означает, что ресурсы не будут вкладываться в кодовую базу Log4j версии 1. Мы призываем пользователей обновиться до последних версий Log4j версии 2. Мы приветствуем все усилия, направленные на то, чтобы внести свой вклад в сообщество Log4j. Пожалуйста, используйте списки рассылки разработчиков, чтобы связаться с нами: https://logging.apache.org/log4j/2.x/mail-lists.html.

Исходный код Log4j версии 1 будет по-прежнему доступен публично, но запросы на извлечение будут закрыты как «не будут исправлены». Лицензия Apache позволяет создавать форки кода, которые уважают товарные знаки Apache Software Foundation.

Вот некоторые причины, по которым мы считаем, что это правильный выбор для проекта Log4j:

Log4j версии 2 поддерживает миграцию с Log4j версии 1

Мы внесли улучшения в https://logging.apache.org/log4j/2.x/manual/migration.html, чтобы лучше объяснить процесс. Многие пользователи не знают, что Log4j версии 2 теперь поддерживает файлы конфигурации Log4j версии 1, поскольку эта функция относительно новая. Мы считаем, что большинство приложений, использующих Log4j версии 1, теперь могут просто заменить jar Log4j версии 1.x на jar Log4j версии 2 и смогут работать. Пользователям рекомендуется связаться с нами через списки рассылки проекта (https://logging.apache.org/log4j/2.x/mail-lists.html), если есть дополнительные области для улучшения.

Проблемы с взаимоблокировкой и многопоточностью в Log4j версии 1

Решение перезапустить проект Log4j как Log4j версии 2 означало, что у нас была возможность исправить давние недостатки дизайна. Один из этих фундаментальных недостатков дизайна связан с тем, как обрабатывать многопоточность внутри библиотеки. Следующий вопрос списка рассылки — лишь один из примеров известных проблем с многопоточностью в Log4j версии 1: https://lists.apache.org/thread/7yqrmzqgzpxmbcc7skl0vr8z33fk4hd4.

Сложные ошибки в Log4j версии 1

Помимо перечисленных пунктов, многие другие проблемы можно найти в Bugzilla: https://bz.apache.org/bugzilla.

Проблема Описание
50213 Вызов синхронизации Category callAppenders вызывает java.lang.Thread.State: BLOCKED
46878 Тупик в версии 1.2.15, вызванный классами AsyncAppender и ThrowableInformation
41214 Тупик с RollingFileAppender
44700 Log4J блокирует файлы журнала прокрутки (файлы не могут быть удалены)
49481 Log4j прекращает запись в файл, а затем приводит к зависанию сервера
50323 Уязвимость в NTEventLogAppender
50463 AsyncAppender вызывает тупик при смерти диспетчера потоков
50858 Утечка загрузчика классов при использовании Log4j в контейнере веб-приложения, таком как Tomcat, WebLogic
52141 [STUCK] ExecuteThread...Blocked пытается получить блокировку: org/apache/log4j/Logger@0xc501e0a8[fat lock]
54009 Поток блокируется
54325 Проблемы параллелизма в AppenderAttachableImpl

Сложности с системой сборки Log4j версии 1, которые могут повлиять на двоичную совместимость

Помимо вышеперечисленных проблем, Log4j версии 1 страдает от сложной системы сборки, разработанной вокруг устаревших версий Java и операционных систем, специфичных для приложений, которые текущая команда разработчиков не может поддерживать. Использование обходных путей в предлагаемых исправлениях означает, что обновлённый выпуск не будет поддерживать все среды оригинального выпуска версии 1.2.x. Патчи к Log4j версии 1 также должны быть совместимы с существующим путём миграции Log4j версии 2.

Ограниченное сообщество Log4j версии 1

Комитет по управлению проектами и коммиттеры службы ведения журналов Apache были сосредоточены на успехе Log4j версии 2 почти десять лет. За несколько лет, предшествовавших объявлению EOL в 2015 году, интерес к Log4j версии 1 был незначительным. Хотя могут быть люди, заинтересованные в самостоятельной работе над Log4j версии 1, пока сообщество служб ведения журналов не сможет оценить достоинства этих участников, PMC должен будет рассмотреть и применить все патчи, управлять ими. Процесс выпуска и будущая поддержка

Мы считаем, что усилия лучше направить на улучшение не устаревшего кода. Мы приветствуем вклад сообщества в миграцию компонентов для улучшения инструментов и поддержки.

Неустранённые уязвимости

В Log4j 1.x после объявления о прекращении поддержки было обнаружено несколько уязвимостей безопасности. В следующей таблице перечислены опубликованные CVE об этих проблемах.

Степень CVE Описание
Высокая CVE-2019-17571 SocketServer уязвим к удалённому выполнению кода, когда злоумышленник может создать вредоносные сериализованные события журнала и отправить их на прослушивающий экземпляр SocketServer.
Средняя CVE-2020-9488 SMTPAppender уязвим для атаки «человек посередине» при использовании SMTPS из-за отсутствия проверки имени хоста в сертификате TLS.
Высокая CVE-2021-4104 JMSAppender уязвим к удаленному выполнению кода, если злоумышленник контролирует либо файл конфигурации, либо целевой сервер LDAP, используемый для настройки конфигураций TopicBindingName и TopicConnectionFactoryBindingName.
Высокая CVE-2022-23302 JMSSink уязвим к удалённому выполнению кода, если злоумышленник контролирует файл конфигурации или целевой сервер LDAP, используемые для настройки конфигураций TopicConnectionFactoryBindingName.
Высокая CVE-2022-23305 JDBCAppender уязвим к SQL-инъекции, если злоумышленник может создать вредоносное сообщение журнала, записанное в JDBCAppender.
Критическая CVE-2022-23307 Версии Chainsaw, поставляемые с Log4j до Chainsaw 2.1.0, уязвимы к удалённому выполнению кода, если злоумышленник отправляет вредоносные сериализованные события журнала. См. также CVE-2020-9493 для CVE, затрагивающей автономную версию Apache Chainsaw.

С уважением,
Рон

Фонд программного обеспечения Apache
Вице-президент, службы ведения журналов

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

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

Введение

Log4j — это открытый исходный код проекта Apache. С помощью Log4j мы можем контролировать, куда направляется информация из логов: на консоль, в файл, компоненты графического интерфейса пользователя (GUI), а также в серверы с сокетным интерфейсом, NT-регистраторы событий и UNIX Syslog-демоны. Расширить Свернуть
Java и 6 других языков
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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