Log4js ConsoleAppender Initialisierung
-
04-10-2019 - |
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
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.