Как я заставляю облик Google вводить пользовательский регистратор, говорю вход свободного городского населения или log4j регистратор

Облик Google имеет встроенную привязку регистратора. Но что, если я хочу использовать вход свободного городского населения или log4j регистратор?

Я могу заставить облик вводить Журнал, созданный

LogFactory.getLog(CLASS.class)

Но имея то же поведение как во встроенной привязке:

Привязка автоматически определяет имя регистратора к названию класса, в который вводится Регистратор..


Это даже имеет смысл? Или крик я просто использую встроенный Регистратор Java? Или просто используйте вход свободного городского населения без инжекций?

7
задан RobertB 18 December 2012 в 15:38
поделиться

4 ответа

На странице CustomInjections в Guice wiki описано, как именно инжектировать логгер, названный по классу, в который он инжектируется.

11
ответ дан 6 December 2019 в 21:11
поделиться

Хотя вы не можете переопределить предоставленный регистратор java.util.logging.Logger , вы привязываете новый регистратор так же, как и любой другой класс:

bind(Log.class).to(LogFactory.getLog(YourClass)); // or toInstance(...);

Но создать именованный регистратор будет немного сложнее.

Если вы покопаетесь в коде Google Guice (u til.BinderImpl.java:87 ), вы увидите, как они назначают отдельное имя класса для каждого экземпляра введенного регистратора. Однако я не изучил его достаточно внимательно, чтобы понять, легко ли его воспроизвести.

Возможно, можно создать поставщика или внедрить фабрику, которая каким-то образом имеет доступ к контексту, чтобы вы могли предоставить именованный регистратор.

0
ответ дан 6 December 2019 в 21:11
поделиться

Guice очень полезен для внедрения различных реализаций интерфейса. Здесь дело обстоит не так, поскольку разные реализации ведения журнала имеют разные API.

Если вы хотите иметь возможность обмениваться фактической реализацией журналирования позже при разработке с использованием интерфейса, используйте commons logging или slf4j .

0
ответ дан 6 December 2019 в 21:11
поделиться

Это ваш выбор. Я успешно использовал logback с Guice, используя метод, описанный в вики.

Посмотрите на проект sli4j. Он может быть полезен.

1
ответ дан 6 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

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