Frage

Ich frage mich, ob jemand geschieht mit etwas Erfahrung haben Log4js ? Es scheint seinen normalen ConsoleAppender nicht immer bereit ist, sofort zu verwenden, nachdem es hinzugefügt wird zu einem Logger-Objekt ... Wenn ich zwei aufeinanderfolgende Script-Tags in einem Dokument wie:

//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>

... Es bewirkt, dass die Konsole Pop-up (Pop-up-Fenster) mit einer Fehlermeldung beim Laden der Seite angezeigt werden:

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

Die Konsole noch initialisiert wird, ist es dort später, aber nur für den ersten Logger Anruf scheint es dort nicht vollständig zu sein. Wenn ich den ersten Anruf Logger setTimeout ( "logger.info ( 'test test')", 1000) zu machen, hat es nicht den Fehler. So ist es, wie es nicht sofort bereit ist. Wer sehen dies vor oder wissen, was eine Abhilfe könnte sein?

Prost

War es hilfreich?

Lösung

Ich schlage vor, mit log4javascript statt? Es hat eine sehr ähnliche API und eine überragende Konsole und aktiv entwickelt wird. Das Äquivalent in log4javascript wäre:

<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>

Ich möchte darauf hinweisen, dass ich bin der Autor des log4javascript.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top