Краткий ответ ...
Используемое в коде Logger
не говорит, где выводятся сообщения регистрации. (Чторешает, куда будут отправляться сообщения, - используемую привязку и конфигурацию.)
Обратите внимание, что сообщения с одинаковым Logger
будут заставлять отправляться в то же место, так как вы 'вы больше не сможете их различать - поэтому вы хотите, чтобы у каждого класса был свой собственный Logger
, чтобы у вас был максимальный выбор позже.
Если вы хотите вывести все сообщения регистрации в один файл, опцияЯ бы предложил использовать привязку log4j вместе со вторым примером log4j.properties, который я привел ниже.По большей части вы должны иметь возможность скопировать / вставить это, чтобы запустить, а затем настроить на досуге.
Длинный ответ ...
Покрытие SLF4J и некоторые его привязки.
SLF4J
С веб-сайта http://www.slf4j.org/
Простой фасад ведения журнала для Java или (SLF4J) служит простым фасадом или абстракцией для различных каркасов ведения журнала,например, java.util.logging, log4j и logback, позволяющие конечному пользователю подключить необходимую инфраструктуру ведения журналов во время развертывания.
Так что все зависит от того, какую привязку вы используете! На самом деле идея заключается в том, что вам даже не нужно останавливаться на привязке до времени выполнения, и вам не нужно менять какой-либо код регистрации, чтобы потом передумать!
Я расскажу о двух, с которыми я знаком, отметим, что есть и другие, и вам следует подумать о том, чтобы провести собственное исследование, прежде чем остановиться на конкретной реализации.
Простое связывание
Простая привязка (например, slfj-simple-1.6.4.jar) не имеет конфигурации.
Она просто записывает все сообщения INFO и выше в стандартный вывод ошибок (System.err).
Привязка Log4j
Как правило, хотя вы хотите использовать более сложную привязку, такую как log4j (именно об этом я и буду говорить).Это гораздо более гибко, чем простое связывание, но требует, чтобы вы выполнили некоторую настройку.
Сначала вам потребуется другой jar для связывания (например, slf4j-log4j12-1.6.4.jar).Вам также понадобится соответствующий jar log4j (например, log4j-1.2.16).И, наконец, вам нужно настроить сам log4j - файл log4j.properties, который будет расположен в корне проекта.
Я перейду к паре примеров файлов log4j.properties
Этот первый выводит все на консоль и очень похож на то, что достигается простым связыванием, за исключением того, что вы можете настроить уровень (TRACE, DEBUG, WARN, INFO, ERROR), на котором вы регистрируетесь, и шаблон вывода.
# Root Logger : TRACE & above to console appender
log4j.rootLogger=TRACE, console
# Appender : Console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-8r %-5p %c [%t] %m%n
Для вывода в один файл вам понадобится другой аппендер, например:
# Root Logger : WARN & above to mainFile appender
log4j.rootLogger=WARN,mainFile
# Appender : mainFile
log4j.appender.mainFile=org.apache.log4j.FileAppender
log4j.appender.mainFile.File=main.log
log4j.appender.mainFile.layout=org.apache.log4j.PatternLayout
log4j.appender.mainFile.layout.ConversionPattern=%-8r %-5p %c [%t] %m%n
Log4j настроен вокруг концепции регистраторов иappenders.
Регистраторы (в отличие от класса регистратора, который вы будете использовать с SLF4J) собирают сообщения по некоторому шаблону (например, сообщения в определенном пакете) и направляют их аппендеру.
Добавляющие определяют способ вывода сообщений (например, файл, сеть, консоль, база данных) и их формат.