Thanks to visit codestin.com
Credit goes to developer.mozilla.org

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

log.entryAdded-Ereignis

Das log.entryAdded Ereignis des log-Moduls tritt auf, wenn ein neuer Log-Eintrag im Browser erstellt wird, entweder durch einen Aufruf der Konsolen-API oder durch einen unbehandelten JavaScript-Fehler.

Ereignisdaten

Das params-Feld in der Ereignisbenachrichtigung ist ein Log-Eintragsobjekt. Abhängig von der Quelle des Logs hat das Log-Eintragsobjekt unterschiedliche Typen: "console" oder "javascript". Jeder Typ kann zusätzliche, spezifische Felder für diese Quelle enthalten.

Allgemeine Felder

Alle Log-Eintragsobjekte enthalten die folgenden Felder:

level

Ein String, der den Schweregrad des Log-Eintrags angibt. Es hat einen der folgenden Werte:

source

Ein Objekt, das den Realm identifiziert, in dem der Log-Eintrag erstellt wurde. Es enthält die folgenden Felder:

realm

Ein String, der die ID des Realms enthält.

context Optional

Ein String, der die ID des Kontexts enthält, in dem der Log-Eintrag erstellt wurde.

userContext Optional

Ein String, der die ID des Benutzerkontexts enthält, in dem das skriptbezogene Ereignis erfolgte.

stackTrace Optional

Ein Objekt mit einem callFrames-Array, das den JavaScript-Stack zu dem Zeitpunkt repräsentiert, als der Eintrag erstellt wurde. Jedes Element im Array ist ein Stack-Frame mit den folgenden Feldern: columnNumber, functionName, lineNumber und url.

text

Ein String, der die Log-Nachricht enthält oder null, wenn nicht verfügbar. Für Konsoleneinträge ist es die Verkettung aller in Strings umgewandelten Argumente, getrennt durch Leerzeichen, und für JavaScript-Fehler ist es im Allgemeinen die Fehlermeldung. Das genaue Format ist browserabhängig, daher sollten Sie sich nicht auf diesen Wert für Behauptungen in Tests verlassen.

timestamp

Eine nicht-negative ganze Zahl, die die Zeit angibt, zu der der Log-Eintrag erstellt wurde, in UTC, als Millisekunden seit dem Zeitpunkt (Date.now()).

type

Ein String, der die Quelle des Log-Eintrags identifiziert. Es hat einen der folgenden Werte:

  • "console": Gibt an, dass der Log-Eintrag durch einen Aufruf einer Konsolen-API-Methode erzeugt wurde (zum Beispiel, console.log(), console.warn()). Log-Eintragsobjekte dieses Typs enthalten zusätzliche Felder.
  • "javascript": Gibt an, dass der Log-Eintrag durch einen unbehandelten JavaScript-Fehler erzeugt wurde.

"console"-Log-Eintragsfelder

Zusätzlich zu den allgemeinen Feldern enthalten Log-Eintragsobjekte mit "type": "console" auch:

args

Ein Array von Objekten, das die an die Konsolenmethode übergebenen Argumente repräsentiert. Jedes Objekt hat ein type-Feld (wie "string", "number", "boolean" oder "array") und optionale value-, handle- und internalId-Felder.

method

Ein String, der den Namen der aufgerufenen Konsolenmethode enthält (zum Beispiel, "log", "error", "assert", "debug", "trace", "warn").

Beispiele

Empfang eines Ereignisses für einen Konsolen-Log

Mit einer WebDriver BiDi-Verbindung und einem Abonnement für log.entryAdded aktiv, sendet der Browser ein log.entryAdded-Ereignis, wenn ein Skript console.log("hello", [1, true, "foo"]) auswertet:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "console",
    "method": "log",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "args": [
      {
        "type": "string",
        "value": "hello"
      },
      {
        "type": "array",
        "value": [
          { "type": "number", "value": 1 },
          { "type": "boolean", "value": true },
          { "type": "string", "value": "foo" }
        ]
      }
    ],
    "level": "info",
    "text": "hello 1,true,foo",
    "timestamp": 1712345678901,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 8,
          "functionName": "",
          "lineNumber": 1,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Empfang eines Ereignisses für eine Konsolenwarnung

Mit einer WebDriver BiDi-Verbindung und einem Abonnement für log.entryAdded aktiv, sendet der Browser ein log.entryAdded-Ereignis, wenn ein Skript console.warn("something went wrong") auswertet:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "console",
    "method": "warn",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "args": [
      {
        "type": "string",
        "value": "something went wrong"
      }
    ],
    "level": "warn",
    "text": "something went wrong",
    "timestamp": 1712345678950,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 8,
          "functionName": "",
          "lineNumber": 1,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Empfang eines Ereignisses für einen unbehandelten JavaScript-Fehler

Mit einer WebDriver BiDi-Verbindung und einem Abonnement für log.entryAdded aktiv, sendet der Browser ein log.entryAdded-Ereignis, wenn ein unbehandelter JavaScript-Fehler auftritt:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "javascript",
    "level": "error",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "text": "ReferenceError: undefinedVariable is not defined",
    "timestamp": 1712345679100,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 27,
          "functionName": "",
          "lineNumber": 3,
          "url": "https://example.com/app.js"
        },
        {
          "columnNumber": 18,
          "functionName": "",
          "lineNumber": 3,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Spezifikationen

Spezifikation
WebDriver BiDi
# event-log-entryAdded

Browser-Kompatibilität

Siehe auch