Новые проекты должны использовать logback вместо log4j? [закрытый]

Используйте :: вместо .

MyObject o = MyMath::calcSomething();

Когда вы вызываете метод без объекта класса, вы должны использовать нотацию ::. Вы также можете вызывать статический метод через объекты класса или указатели на них, в этом случае вам следует использовать обычные обозначения . или ->:

MyObject obj;
MyObject* p = new MyObject();

MyObject::calcSomething();
obj.calcSomething();
p->calcSomething();
77
задан 7 October 2008 в 15:01
поделиться

2 ответа

You should use SLF4J+Logback for logging.

It provides neat features like parametrized messages and (in contrast to commons-logging) a Mapped Diagnostic Context (MDC, javadoc, documentation).

Using SLF4J makes the logging backend exchangeable in a quite elegant way.

Additionally, SLF4J supports bridging of other logging frameworks to the actual SLF4J implementation you'll be using so logging events from third party software will show up in your unified logs - with the exception of java.util.logging that can't be bridged the same way that other logging frameworks are.

Bridging jul is explained in the javadocs of SLF4JBridgeHandler.

I've had a very good experience using the SLF4J+Logback combination in several projects and LOG4J development has pretty much stalled.

SLF4J has the following remaining downsides:

  • It does not support varargs to stay compatible with Java < 1.5
  • It does not support using both parametrized message and an exception at the same time.
  • It does not contain support for a Nested Diagnostic Context (NDC, javadoc) which LOG4J has.
82
ответ дан 24 November 2019 в 10:59
поделиться

Выполните повторный вход в систему, чтобы узнать больше о Java EE:
в целом (от кода до документации) он учитывает контейнеры - как сосуществуют несколько приложений , как реализованы загрузчики классов и т. д. Контексты для регистраторов, JNDI, конфигурация JMX и т. д.

с точки зрения разработчика почти то же самое, Logback добавляет параметризованное ведение журнала (нет необходимости использовать if (logger.isDebugEnabled ()) для избегайте накладных расходов на конкатенацию строк)

Log4j - только гигантский плюс - старая поддержка JVM, маленькая (IMO) NDC (Logback only MDC), некоторые расширения. Например, я написал расширение для configureAndWatch для Log4j, такого нет для Logback

2
ответ дан 24 November 2019 в 10:59
поделиться
Другие вопросы по тегам:

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