log4j против logback [закрыто]

Завершение кода для магических методов может быть достигнуто с помощью аннотации @property и @method в DocBlock класса (не в Docs).

/**
 * @property string bark
 */
class Dog {
    /* ... */
}

$Dog = new Dog();
echo $Dog-> // will autocomplete now

Обратите внимание, что между фактическим кодом и аннотацией нет корреляции. Zend Studio покажет все, что вы установили для @property, независимо от этого свойства.

Code Completion in Zend Studio with @property annotation [/g2]

также не проверяет, действительно ли доступен волшебный метод.

147
задан Jonik 29 May 2009 в 09:20
поделиться

4 ответа

Не точно ответ на Ваш вопрос, но если Вы могли бы переехать от своей самодельной обертки тогда, существует Простой Фасад Входа для Java (SLF4J) , которые В спящем режиме, теперь переключился на (вместо входа свободного городского населения).

SLF4J не страдает ни от одной из проблем загрузчика класса или утечек памяти, наблюдаемых с Джакартским входом палаты общин (JCL).

SLF4J поддерживает вход JDK, log4j и logback. Таким образом должно быть довольно легко переключиться от log4j до logback когда настало время.

Редактирование: Aplogies, что я не ясно выразился. Я предлагал использовать SLF4J для изоляции себя от необходимости сделать трудный выбор между log4j или logback.

19
ответ дан toolkit 29 May 2009 в 09:20
поделиться

Ваше решение должно быть основано

  • Ваша фактическая потребность для них "больше функций"; и
  • Ваша ожидаемая стоимость реализации изменения.

необходимо сопротивляться желанию изменить API просто, потому что это является "более новым, более блестящим, лучше". Я следую за политикой, "если она не повреждается, не ударяйте ее".

, Если Ваше приложение требует очень сложной платформы журналирования, можно хотеть рассмотреть почему.

13
ответ дан Carl Smotricz 29 May 2009 в 09:20
поделиться

Логбэк изначально реализует SLF4J API. Это означает, что если вы используете логбэк, вы фактически используете SLF4J API. Теоретически вы можете использовать внутреннюю часть API логбэка напрямую для регистрации, но это крайне не рекомендуется. Вся документация по логбэку и примеры для логгеров написаны с использованием SLF4J API.

Таким образом, используя логбэк, вы фактически будете использовать SLF4J, и если по какой-либо причине вы захотите вернуться к log4j, вы можете сделать это в течение нескольких минут, просто перетащив slf4j-log4j12.jar в путь к вашему классу.

При переходе с logback на log4j отдельные части logback, в частности те, которые содержатся в файле конфигурации logback.xml , все равно необходимо будет перенести в его эквивалент log4j, то есть log4j.properties . При миграции в другом направлении Конфигурация log4j, то есть log4j.properties , должна быть преобразована в ее эквивалент logback. Для этого существует онлайн-инструмент . Объем работы, необходимой для переноса файлов конфигурации, намного меньше, чем работа, необходимая для переноса вызовов регистратора, распространенных по всему исходному коду вашего программного обеспечения и его зависимостям.

183
ответ дан 23 November 2019 в 22:30
поделиться

Должны ли вы? Да .

Почему? log4j по существу устарели от обратного плата .

Это срочно? Возможно, нет.

Это безболезненно? Возможно, но он может зависеть от ваших выступлений в ведение журнала.

Обратите внимание, что если вы действительно хотите воспользоваться в полной мере воспользоваться входным преимуществом (или SLF4J), то вам действительно нужно написать правильные выписки ведения журнала . Это даст преимущества, такие как более быстрый код из-за ленивых оценок и меньшей строки кода, потому что вы можете избежать охранников.

Наконец, я настоятельно рекомендую SLF4J. (Зачем воссоздать колесо своим фасадом?)

54
ответ дан 23 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: