Wir haben eine Webanwendung, die im Kiosk-Modus Firefox läuft und dazu die RKiosk-Erweiterung verwendet. Wir vermuten, dass wir einen sehr seltenen Fehler im System haben, der in einem JavaScript-Fehler resultiert. Da wir jedoch nicht auf die JavaScript-Konsole zugreifen können, können wir das Protokoll nicht untersuchen.
Ich suche nach einer Option, mit der Firefox alle JavaScript-Konsolennachrichten in eine Datei protokollieren kann, unabhängig von der geöffneten Registerkarte und Seite. Ich kann keine Erweiterung dafür finden. Ich verwende bereits log4javascript, das Fehler an den Server zurücksendet, aber es scheint, dass unsere Anwendung so abstürzt, dass sie die Protokollierung komplett überspringt.
Das Schreiben in eine Datei klingt für mich nach einer langweiligen Aufgabe. Es erfordert Privilegien, die der Browser-Code normalerweise nicht hat, und Sie müssten mit einem Add-On verhandeln, das Sie schreiben müssten, um auf Datei-E / A .
Soweit ich weiß, ist Ihr Problem
Ich möchte, dass Firefox alle Fehler protokolliert
Es gibt verschiedene Ansätze, wie wir das angehen können
Anstatt nun in eine tatsächliche Datei zu schreiben, können Sie stattdessen in localStorage
oder IndexedDB
schreiben.
Das ist ziemlich dreckig und ziemlich langsam, aber es sollte die Arbeit erledigen und Sie können später im lokalen Speicher auf das Protokoll zugreifen. LocalStorage hat ein Limit von ~ 5MB, wenn ich mich richtig erinnere, was ich für genug halte, wenn Sie nicht mit dem Loggen verrückt werden. Sie können es auch selektiv ausführen.
Dies ähnelt dem, was Pumbaa80 vorgeschlagen hat. Sie können window.onerror
einfach überschreiben und nur Fehler protokollieren.
Dies ist die leistungsstärkste Version, bietet jedoch die problematischste Benutzererfahrung. Wenn Sie den Kiosk in einer virtuellen Maschine ausführen, erkennen Sie eine nicht erfasste Ausnahme - wenn Sie die Maschine einfrieren und ihren Status speichern und stattdessen eine Sicherungs-VM ausführen. Ich musste das nur tun, wenn ich die furchterregendsten Fehler behandle, und es ist nicht schön. Es sei denn, Sie wirklich wollen den gesamten eroberten Zustand - tun Sie das nicht.
Wirklich, machen Sie die Erweiterung vorher - das ist mühsam, aber es wird sehr solide Ergebnisse.
Abschließend denke ich, dass der erste Ansatz oder sogar nur der zweite mehr als genug für das ist, was Sie brauchen. localStorage
ist ein abstrahierter Speicher, den Webseiten erhalten, um den Zustand ohne Sicherheitsprobleme zu speichern. Wenn das nicht groß genug ist, können wir über eine IndexedDB-Lösung sprechen.
Es kommt wirklich auf den Anwendungsfall an, den Sie haben.
Sie können XULRunner ... eine Mozilla-Laufzeitumgebung für XUL Anwendungen verwenden. Es verwendet Gecko wie Firefox und:
Wenn Sie in der Lage / willens sind, von Firefox zu Chrome oder Opera zu wechseln, könnten Sie die Sandboxed Filesystem API verwenden, um eine lokale Datei zu schreiben. Siehe:
Starten Sie im Kiosk-Modus mit chrome.exe --kiosk <url>
Sie möchten dann Alt-F4 und Strg-Alt-Entf deaktivieren, was unter Windows mit verschiedenen Tools von Drittanbietern wie Auto Hotkey möglich ist ( Strg-Alt-Del-Skript deaktivieren ).
>Sie können ein Remote-Protokollierungsskript wie Qbaka verwenden. Es fängt jeden JS-Fehler ab und sendet es an den Qbaka-Server. Dort können Sie sich anmelden und alle JS-Fehler sehen. Qbaka speichert für jede Fehlermeldung die genaue Fehlermeldung, das Skript, die Zeilennummer, den Stack-Trace und den verwendeten Browser.
Tags und Links javascript logging firefox