Как войти в Digester с помощью Apache Commons? - PullRequest
3 голосов
/ 05 мая 2010

У меня проблемы с получением Apache Commons Digester для регистрации чего-либо. Я был бы чрезвычайно благодарен за любой свет, который может пролить любой.

В моем коде я делаю это:

Digester digester = new Digester();
// some Digester set up stuff

// What on earth should go in here????
digester.setLogger(LogFactory.getLog("org.apache.commons.logging.Log"));

У меня есть commons-logging.properties файл в моем пути к классам следующим образом:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
org.apache.commons.logging.simplelog.log.org.apache.commons.digester.Digester=debug
org.apache.commons.logging.simplelog.log.org.apache.commons.digester.Digester.sax=info

Я просто не получаю отладочной информации.

Спасибо за вашу помощь!

Обновление : Спасибо за ответ bwawok - вот в чем проблема. В документах для Digester они предлагают, чтобы вы просто включили SimpleLog регистрации общего достояния. К сожалению, Digester не выводит никаких сообщений INFO, только DEBUG, и, по крайней мере, на Eclipse, SimpleLog вообще не выводит сообщений DEBUG! В результате не было сообщений INFO (потому что Digester не отправляет ни одного) и сообщений DEBUG (потому что SimpleLog не пересылает их!). Как только я переключился на log4j, все сообщения отладки были выброшены! Еще раз спасибо.

1 Ответ

2 голосов
/ 05 мая 2010

Я предлагаю вам не использовать ведение журнала. У него есть некоторые проблемы, такие как отсутствие хорошей игры с Tomcat 5.5 и выше.

Если вы пишете свое собственное приложение (не библиотеку), я предлагаю вам написать код непосредственно для Log4j. Прочитайте учебное пособие на http://logging.apache.org/log4j/1.2/manual.html. У вас будет файл log4j.properties, например,

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

Тогда в вашем приложении вы будете использовать

Logger logger = Logger.getLogger(MyClassName.class);
logger.info("Doing something I want to log at info... " );
logger.warn("Danger!");

Если вместо этого вы пишете библиотеку для распространения (то, что большинство людей использовали для регистрации общего достояния в прошлом), посмотрите на sl4j. http://www.slf4j.org/. Большинство библиотек переключаются на это вместо регистрации общих.

...