log4js инициализация ConsoleAppender - PullRequest
1 голос
/ 08 мая 2010

Мне интересно, есть ли у кого-нибудь опыт использования Log4js ? Кажется, это нормально ConsoleAppender не всегда готов к использованию сразу после его добавления в объект регистратора ... Если у меня есть два последовательных тега сценария в документе, как:

//Initialize logger
<script type="text/javascript">                   
      var logger = new Log4js.getLogger("JSLOG");
      logger.addAppender(new Log4js.ConsoleAppender(logger, false));
      logger.setLevel(Log4js.Level.INFO);         
</script>


//Use logger
<script type="text/javascript">
     logger.info('Test test');
</script>

... Появляется всплывающее окно консоли (всплывающее окно) с сообщением об ошибке при загрузке страницы:

12:58:23 PM WARN Log4js - Could not run the listener function () {
    return fn.apply(object, arguments);
}. 
TypeError: this.outputElement is null

Консоль все еще инициализирована, она там после, но только для первого вызова регистратора, похоже, она там не полностью. Если я сделаю первый вызов logT setTimeout ("logger.info ('test test')", 1000), ошибки не будет. Так что, как будто он не готов сразу. Кто-нибудь видел это раньше или знает, каким может быть обходной путь?

Приветствия

1 Ответ

6 голосов
/ 08 мая 2010

Могу ли я предложить вместо этого log4javascript ? Он имеет очень похожий API и превосходную консоль и активно развивается. Эквивалент в log4javascript будет:

<script type="text/javascript" src="log4javascript.js"></script>

<script type="text/javascript">                   
      //Initialize logger
      var logger = log4javascript.getDefaultLogger();
      logger.setLevel(log4javascript.Level.INFO);         
</script>


<script type="text/javascript">
     //Use logger
     logger.info('Test test');
</script>

Я должен указать, что я являюсь автором log4javascript.

...