Loggen Sie die JavaScript-Konsole in eine Protokolldatei mit Firefox

8

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.

    
NagyI 10.10.2013, 14:22
quelle

7 Antworten

1

Haben Sie jserrorcollector probiert? Wir benutzen es und es funktioniert gut (nur in Firefox). Es ist nur für Java.

%Vor%

Weitere Informationen: Ссылка

    
vbail 22.10.2013, 08:38
quelle
3

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

Erste Annäherung - alles auch auf localStorage protokollieren:

Anstatt nun in eine tatsächliche Datei zu schreiben, können Sie stattdessen in localStorage oder IndexedDB schreiben.

%Vor%

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.

Zweiter Ansatz - nur Fehler protokollieren

Dies ähnelt dem, was Pumbaa80 vorgeschlagen hat. Sie können window.onerror einfach überschreiben und nur Fehler protokollieren.

%Vor%

Dritter und drastischer Ansatz - Verwenden Sie eine VM.

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.

    
Benjamin Gruenbaum 15.10.2013 09:20
quelle
2

Sie können XULRunner ... eine Mozilla-Laufzeitumgebung für XUL Anwendungen verwenden. Es verwendet Gecko wie Firefox und:

  1. Sie können auf das Dateisystem zugreifen oder die Datenbank SQLite zum Speichern von Protokollen verwenden.
  2. Sie können Ihren Kiosk im Vollbildmodus rendern, ohne Erweiterungen zu verwenden.
Hellgorithm 22.10.2013 03:20
quelle
1

Haben Sie die Fernprotokollierung in Betracht gezogen?

Normalerweise weise ich window.onerror zu, um eine Anfrage an einen Webserver zu senden, der die Details des Fehlers fern speichert. Sie könnten das gleiche mit console.log tun, wenn Sie es vorziehen.

    
Murph 21.10.2013 20:54
quelle
1

Probieren Sie den folgenden Konsolenexport aus. Es ist ein Plugin für Firebug von Firefox. Es ist ziemlich praktisch.

Zypern

    
Alan Dong 16.05.2014 21:41
quelle
0

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

>     
SpliFF 22.10.2013 07:29
quelle
0

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.

    
Reeno 22.10.2013 07:44
quelle

Tags und Links