Sie sind nicht angemeldet.

H.Lunke

Anfänger

  • »H.Lunke« ist der Autor dieses Themas

Beiträge: 4

Wohnort: León, Nicaragua

  • Nachricht senden

1

Mittwoch, 15. Juli 2015, 17:00

Besuchsprotokollierung mittels log4javascript-AjaxAppender

Hallo,

ich möchte eine serverseitige Protokollierung der Tourbesuche einrichten, es mangelt mir aber an ausreichenden Javascript-/Programmier-Kenntnissen... die Tour wurde mit Panotour Pro erstellt, es handelt sich aber nicht um ein Problem der Oberfläche:

Beim Klicken der Hotspots sollen Daten per "log4javascript-AjaxAppender" an den Server übertragen werden, um dort per "log4php" zur zentralen Auswertung in einer Logdatei zu landen.

Die serverseitige Verarbeitung funktioniert:

Quellcode

1
curl --data "M=pano10&U=me@example.com" http://www.example.com/logger.php


Eintrag in Logdatei:

Quellcode

1
2015-07-15T16:27:31+02:00 INFO MyLogger pano10 me@example.com


Auch die lokale Anzeige per Popup-Window funktioniert bei Aufruf folgd. Funktion: logmsg(get(xml.scene))

Definition in index.html:

Quellcode

1
2
3
4
5
6
<script type="text/javascript">
function logmsg(p1)
{
alert(p1);
}
</script>


Nun soll statt dem "alert" aber die "log.info"-Funktion von "log4javascript" ausgeführt werden:
Definition in index.html:

Quellcode

1
2
3
4
5
6
7
<script type="text/javascript" src="log4javascript.js"></script>
<script type="text/javascript">
var ajaxAppender = new log4javascript.AjaxAppender(http://www.example.com/logger.php);
var layout = new log4javascript.PatternLayout("%m");
log.addAppender(ajaxAppender);
ajaxAppender.setLayout(layout);
</script>


Die Frage ist also, wie ich die Funktion "log.info(message)" ausführen kann, die ja nicht explizit in der index.html-Datei definiert wird?
Herzlichen Dank schonmal für Eure Hilfe!
Paradise is exactly like where you are right now -
only much, much better.
[Laurie Anderson, Language is a virus]

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

2

Donnerstag, 16. Juli 2015, 18:26

Das Objekt log ist soweit ich sehen kann global, somit :

Quellcode

1
2
3
4
5
6
<script type="text/javascript">
function logmsg(p1)
{
log.info(p1);
}
</script>

H.Lunke

Anfänger

  • »H.Lunke« ist der Autor dieses Themas

Beiträge: 4

Wohnort: León, Nicaragua

  • Nachricht senden

3

Donnerstag, 16. Juli 2015, 23:38

Besten Dank für Deine Antwort.

Den Fehler hatte ich selber in folgd. Zeile eingebaut:

Quellcode

1
var ajaxAppender = new log4javascript.AjaxAppender(http://www.example.com/logger.php);


Die URL muss in Anführungszeichen stehen, und schon funktioniert :)

Quellcode

1
var ajaxAppender = new log4javascript.AjaxAppender('http://www.example.com/logger.php');


In der Debugger-Konsole wurde eine fehlende schliessende Klammer angemeckert, das war der entscheidende Hinweis.
Paradise is exactly like where you are right now -
only much, much better.
[Laurie Anderson, Language is a virus]