Einen Fehler-Logger ergänzen
Für Entwickler, die einen Client mit OpenBot verbinden oder den Server erweitern. Die Beispiele brauchen die auf dieser Seite genannten Rechte. Beginne mit dem Entwicklerhandbuch.
Für Mitwirkende, die OpenBot ändern oder veröffentlichen.
Fehler an deinen eigenen Dienst schicken
Section titled “Fehler an deinen eigenen Dienst schicken”Wenn du OpenBot aus deinem eigenen Code startest, füge mit Logger.layer einen
Logger hinzu. Nutze mergeWithExisting: true, damit die anderen Logger bleiben.
Stelle ihn außerhalb des Servers bereit. So bleibt er offen, bis der Server
geschlossen ist.
import { NodeRuntime, NodeServices } from "@effect/platform-node"import { EnvironmentConfiguration, Server } from "@openbot-build/openbot"import { Effect, Layer, Logger, References } from "effect"import { FetchHttpClient } from "effect/http"
const alerts = Logger.layer( [ Logger.make((log) => { if (log.logLevel !== "Error" && log.logLevel !== "Fatal") return const annotations = log.fiber.getRef(References.CurrentLogAnnotations) // Schicke nur die Werte, die du brauchst, zum Beispiel an einen Chat-Bot. console.log("alert", annotations["source"], annotations["operation"]) }), ], { mergeWithExisting: true },)
NodeRuntime.runMain( Effect.gen(function* () { const settings = yield* EnvironmentConfiguration.load return yield* Layer.launch( Server.layerLive(settings).pipe( Layer.provide(Layer.merge(NodeServices.layer, FetchHttpClient.layer)), ), ) }).pipe(Effect.provide(alerts)),)Ein Logger darf nicht blockieren. Wenn du einen langsamen Dienst aufrufen willst, lege jedes Ereignis in eine Warteschlange. Schicke es dann von einer Fiber im Hintergrund. Eine Fiber ist ein leichter Thread, den Effect ausführt.