Sentry-javascript: Was hat es mit wrapConsoleMethod() auf sich?

Erstellt am 17. Mai 2016  ·  15Kommentare  ·  Quelle: getsentry/sentry-javascript

Mir ist vor kurzem aufgefallen, dass Raven jetzt alle Konsolenmethoden abschließt, aber ich sehe keine Dokumentation, die beschreibt, warum? oder wie könnte es möglicherweise nützlich sein? Ist das schon jemandem aufgefallen und könnte mich auf eine Dokumentation zur Verwendung hinweisen?

Das Problem, auf das ich stoße, ist, dass ich mit console.log() kein einfaches Debuggen mehr durchführen kann.

Ursprünglich im Docs Repo gepostet, dann geschlossen

Hilfreichster Kommentar

Ab 3.5.0 können Sie die automatische Sammlung von Konsolen-Breadcrumbs deaktivieren:

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});

Oder Sie können die automatische Breadcrumb-Sammlung vollständig deaktivieren:

Raven.config('your dsn', { autoBreadcrumbs: false });

Mehr dazu in den Dokumenten .

Alle 15 Kommentare

@grapho – Konsolenanweisungen werden gesammelt und als Breadcrumbs übergeben .

Ich kann sehen, wie irritierend es sein kann, dass die URL in devtools Sie als Ergebnis der Instrumentierung von console.log nicht mehr zur ursprünglichen Protokollanweisung in Ihrer Quelle führt. Wir könnten die Instrumentierung console.log optional machen. Oder führen Sie alternativ Raven.log als alternative API zum Aufzeichnen Ihrer eigenen Breadcrumbs ein.

@benvinegar Ich verspreche, dass ich nicht irritiert bin ... wenn es eine Möglichkeit gibt, die Breadcrumbs oder eine äquivalente API in einer Entwicklungsumgebung zu verwenden ... Ort von console.log, würde ich gerne wissen, wie?

Ich könnte mich daran gewöhnen, stattdessen Breakpoints und Debugger-Statements zu platzieren.

Ich schätze, ich habe den Link zur Konsolenanweisung selten verwendet und nicht einmal bemerkt, dass er weg war :) Ich persönlich benutze die meiste Zeit den Chrome-Debugger.

Wenn es eine Möglichkeit gibt, die Breadcrumbs oder eine gleichwertige API in einer Entwicklungsumgebung zu verwenden

Sie können heute Raven.captureBreadcrumb wenn Sie nur einen Breadcrumb festlegen möchten. Die API ist jedoch noch nicht wirklich ausgereift. Dies ist immer noch ein neues Feature und wir versuchen immer noch, einige Bits auszuarbeiten.

Wenn dies kein ernsthafter Blocker ist, möchte ich dieses Problem noch eine Weile offen halten und sehen, ob wir noch mehr Feedback erhalten.

Ich denke, dies ist ein großes Problem, insbesondere, dass es nirgendwo dokumentiert ist und nicht deaktiviert werden kann.
Möglicherweise gibt es Tonnen von console.log, die wir nicht an Sentry senden möchten.

Es liegt am Entwickler, zu entscheiden, was er wann sendet

Eine weitere Sache, die ich nicht erwähnt habe, ist, dass einige JS-Frameworks wie Ember.js dazu neigen, console()-Methoden aus Produktions-Builds zu entfernen. Nur Essen zur Überlegung.

obiger Kommentar scheint falsch zu sein, sorry.

@benvinegar Ich weiß es zu schätzen, dass Sie bereit sind, das Ticket offen zu halten, es könnte sich lohnen, mehr zu untersuchen :)

@benvinegar Dieses Problem ist überhaupt kein ernsthafter Blocker.

Hier ist meine aktuelle Lösung. Mir wurde klar, dass ich den raven.js-Client im Entwicklungsmodus _nicht_ initialisieren kann ... raven/sentry-Berichte sind ohnehin nur für die meisten Leute (ich stelle mir vor) in Produktionsanwendungen wirklich nützlich.

Davon abgesehen. es könnte immer noch sinnvoll sein, vielleicht ein developmentMode Konfigurationsflag einzuführen, das es ermöglicht, dass Nachrichten und Fehler an die Entwicklerkonsole weitergeleitet werden (auch bekannt als das Deaktivieren einiger der "globalen" Handhabung).. während der Rabe gehalten wird. js-Client im Hintergrund still, sodass wir Fehlerberichte weiterhin manuell senden können, indem wir die Raben-APIs explizit auslösen, wenn wir dies wünschen.

Lassen Sie mich wissen, wie Sie sich dabei fühlen. Ansonsten würde ich mir nicht allzu viele Sorgen machen, da dieses Problem hauptsächlich durch meine Unerfahrenheit mit Rabe und wie / wann ich sie benutzt habe, verursacht wurde.

Möglicherweise gibt es Tonnen von console.log, die wir nicht an Sentry senden möchten.

Real Talk – willst du das eigentlich deaktivieren? Ich versuche hier nicht passiv aggressiv zu klingen, ich möchte nur wissen, ob dies im Moment ein ernstes Problem ist und Sie es deaktivieren möchten.

Ich denke, das ist ein großes Problem, vor allem, weil es nirgendwo dokumentiert ist und

Es ist im Raven.js- Changelog dokumentiert. Wir haben auch einen Blog-Beitrag veröffentlicht , in dem Breadcrumbs angekündigt werden, in dem erwähnt wird, dass console.log Anweisungen jetzt protokolliert werden, und dieser Beitrag wurde in-App an alle gehosteten Sentry-Benutzer gesendet. Es tut mir leid, dass wir Sie nicht erreichen konnten, aber ich denke, es wurde ernsthaft versucht, dies zu kommunizieren.

Beachten Sie auch, dass Raven.js 3.0.x aus diesem Grund eine größere Versionsverbesserung war, da potenziell bahnbrechende Änderungen eingeführt wurden. Ich hoffe, dass die Leute das Changelog überprüfen, bevor sie auf eine Hauptversion aktualisieren.

... kann nicht deaktiviert werden.

In der Zwischenzeit können Sie Raven 2.x weiterhin ausführen.

@benvinegar Ich weiß es zu schätzen, dass Sie bereit sind, das Ticket offen zu halten, es könnte sich lohnen, mehr zu untersuchen :)

Ich möchte mehr Feedback sammeln, bevor ich mich auf eine Lösung einlasse. Vor allem, seit 3.0.x seit einigen Wochen live ist und die meisten Rückmeldungen, die wir erhalten haben, positiv waren.

@benvinegar Dieses Problem ist überhaupt kein ernsthafter Blocker.

Ja, ich hatte das Gefühl, Sie waren mehr als alles andere neugierig.

Davon abgesehen. Es könnte immer noch von Nutzen sein, vielleicht ein DevelopmentMode-Konfigurationsflag einzuführen, das es ermöglicht, dass Nachrichten und Fehler an die Entwicklerkonsole weitergeleitet werden (auch bekannt als das Deaktivieren einiger der "globalen" Handhabung).. während der raven.js-Client im Hintergrund, sodass wir Fehlerberichte immer noch manuell senden können, indem wir die Raben-Apis explizit auslösen, wenn wir dies wünschen.

Ja, das Problem dabei ist, dass es ein Argument dafür gibt, Konsolenanweisungen auch zum Debuggen in der Produktion zu verwenden. Ich würde es lieber einfach konfigurierbar machen. Und wir werden. Ich möchte zunächst nur mehr Feedback erhalten / Auswirkungen messen.

Anwyays, ich weiß Ihre Kommentare hier wirklich zu schätzen.

@benvinegar : 👍 für Konfigurationsoption — idealerweise ermöglicht es, unerwünschte Einträge von Hand (oder besser gesagt Funktion) herauszufiltern

Dies wird auch im Support-Tracker immer wieder angezeigt. Ich denke, wir sollten eine Methode hinzufügen, um sie zu deaktivieren.

Bitte machen Sie die Breadcrumbs-Funktion optional, das Umschließen von Konsolenmethoden ist riskant und anfällig für Konflikte mit vielen anderen Bibliotheken und Skripten von Drittanbietern, die dies ebenfalls versuchen.

Ab 3.5.0 können Sie die automatische Sammlung von Konsolen-Breadcrumbs deaktivieren:

Raven.config('your dsn', {
  autoBreadcrumbs: {
    console: false
  }
});

Oder Sie können die automatische Breadcrumb-Sammlung vollständig deaktivieren:

Raven.config('your dsn', { autoBreadcrumbs: false });

Mehr dazu in den Dokumenten .

autoBreadcrumbs ist in der Typoskript-Deklarationsdatei nicht vorhanden. Ist es beabsichtigt?

https://github.com/getsentry/raven-js/blob/master/typescript/raven.d.ts

Wir haben in letzter Zeit mit TypeScript-Deklarationen zu kämpfen. Einreichungen willkommen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen