Я начинаю разрабатывать плагин Eclipse (технически, плагин OSGi), и одна из первых проблем, с которыми я столкнулся, заключается в том, что я не могу контролировать вывод сообщений общего доступа, как обычно.
Я включил пакет commons-logging в зависимостях плагина, и действительно, когда я что-то регистрирую (в INFO или выше), он регистрируется на консоли. Тем не менее, я не могу войти на любой более низкий уровень (например, DEBUG или TRACE).
Я указал файл log4j.properties, и он находится в пути к классам (для среды выполнения, как и для пакета commons-logging), но ни один из параметров этого файла свойств не влияет на поведение регистратора.
Здесь файл log4j.properties:
# Log4j Logging levels, in order of decreasing importance are:
# FATAL, ERROR, WARN, INFO, DEBUG, TRACE
#
# Root logger option
log4j.rootLogger=ERROR,stdout
#,LOGFILE
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %r (%l) %t%n - %m%n
Что мне нужно сделать, чтобы я мог контролировать вывод журнала?
Вот несколько примеров выходных сообщений в надежде, что форматирование может совпадать со значением по умолчанию для java.util.logging или предоставить другие подсказки кому-либо:
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
SEVERE: fatal_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
WARNING: warn_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
INFO: info_message
Update:
Теперь я попробовал различные комбинации:
- org.osgi.service.log.LogService и др.
- slf4j
- Log4J
- Ведение журнала ведения переговоров
- java.util.logging
и я могу получить сообщения DEBUG или lower, level, если я запускаю OSGi вручную из подсказки (что нецелесообразно для того, что я разрабатываю). Кроме того, я не могу использовать какой-либо другой тип конфигурации регистрации через различные файлы свойств. Все, что я пытаюсь сделать в этом отношении, кажется, переопределяется настройкой затмения.
Я также попытался разместить различные файлы конфигурации для вышеупомянутых библиотек во многих местах, в том числе в виде подключаемых фрагментов, прикрепленных к их соответствующим библиотекам, как предложено здесь, и все же происходит тот же результат.
Я внедрил пользовательский LogListener и отслеживал весь путь сообщения журнала (так же как и я знаю, как это сделать) с сообщениями System.out.println и отладочными сообщениями до тех пор, пока они не будут выведены каким-либо базовый API протоколирования, который я использую, затем они исчезают.