From 327c94738fa8375796acfe9fd4973576633fa1c3 Mon Sep 17 00:00:00 2001 From: Hong Minhee Date: Tue, 26 Nov 2024 16:19:51 +0900 Subject: [PATCH] Sentry sink docs --- docs/bun.lockb | Bin 121567 -> 153490 bytes docs/manual/install.md | 6 +-- docs/manual/sinks.md | 85 ++++++++++++++++++++++++++++++++++++++++- docs/package.json | 5 ++- 4 files changed, 91 insertions(+), 5 deletions(-) diff --git a/docs/bun.lockb b/docs/bun.lockb index 3a123cee5c2942ad9b2598aad8a0b42d242a80f2..e220c586c9247cd51cc110fec4f3cc38e03e4f96 100755 GIT binary patch delta 45776 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
Ha>E3cs4!E!=3Nxiv`4wzOcVM?iu)ngq4;`d)~ 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 diff --git a/docs/manual/install.md b/docs/manual/install.md index e24fd2d..9b14f00 100644 --- a/docs/manual/install.md +++ b/docs/manual/install.md @@ -7,7 +7,7 @@ JavaScript runtimes and package managers: :::code-group ~~~~ sh [Deno] -deno add @logtape/logtape +deno add jsr:@logtape/logtape ~~~~ ~~~~ sh [npm] @@ -61,8 +61,8 @@ bun add @logtape/logtape@dev > to specify the specific version number of the unstable release: > > ~~~~ sh -> deno add @logtape/logtape@1.2.3-dev.4 # Replace 1.2.3-dev.4 with the actual version number +> deno add jsr:@logtape/logtape@1.2.3-dev.4 # Replace 1.2.3-dev.4 with the actual version number > ~~~~ [JSR]: https://jsr.io/@logtape/logtape -[npm]: https://www.npmjs.com/package/@logtape/logtape \ No newline at end of file +[npm]: https://www.npmjs.com/package/@logtape/logtape diff --git a/docs/manual/sinks.md b/docs/manual/sinks.md index f09e30d..77dc400 100644 --- a/docs/manual/sinks.md +++ b/docs/manual/sinks.md @@ -254,7 +254,7 @@ sink to send log messages to the collector using [@logtape/otel] package: ::: code-group ~~~~ sh [Deno] -deno add @logtape/otel +deno add jsr:@logtape/otel ~~~~ ~~~~ sh [npm] @@ -304,6 +304,89 @@ For more details, see the documentation of [@logtape/otel]. [`getOpenTelemetrySink()`]: https://jsr.io/@logtape/otel/doc/~/getOpenTelemetrySink +Sentry sink +----------- + +If you are using [Sentry] for error monitoring, you can use the Sentry sink to +send log messages to Sentry using [@logtape/sentry] package: + +::: code-group + +~~~~ sh [Deno] +deno add jsr:@logtape/sentry +~~~~ + +~~~~ sh [npm] +npm add @logtape/sentry +~~~~ + +~~~~ sh [pnpm] +pnpm add @logtape/sentry +~~~~ + +~~~~ sh [Yarn] +yarn add @logtape/sentry +~~~~ + +~~~~ sh [Bun] +bun add @logtape/sentry +~~~~ + +::: + +The quickest way to get started is to use the [`getSentrySink()`] function +without any arguments: + +~~~~ typescript twoslash +import { configure } from "@logtape/logtape"; +import { getSentrySink } from "@logtape/sentry"; + +await configure({ + sinks: { + sentry: getSentrySink(), + }, + filters: {}, + loggers: [ + { category: [], sinks: ["sentry"], level: "debug" }, + ], +}); +~~~~ + +The log records will show up in the breadcrumbs of the Sentry issues: + +![LogTape records show up in the breadcrumbs of a Sentry issue.](https://raw.githubusercontent.com/dahlia/logtape-sentry/refs/heads/main/screenshot.png) + +If you want to explicitly configure the Sentry client, you can pass +the [`Client`] instance to the [`getSentrySink()`] function: + +~~~~ typescript twoslash +import { configure } from "@logtape/logtape"; +import { getSentrySink } from "@logtape/sentry"; +import { init } from "@sentry/node"; + +const client = init({ + dsn: process.env.SENTRY_DSN, +}); + +await configure({ + sinks: { + sentry: getSentrySink(client), + }, + filters: {}, + loggers: [ + { category: [], sinks: ["sentry"], level: "debug" }, + ], +}); +~~~~ + +For more details, see the documentation of [@logtape/sentry]. + +[Sentry]: https://sentry.io/ +[@logtape/sentry]: https://github.com/dahlia/logtape-sentry +[`getSentrySink()`]: https://jsr.io/@logtape/sentry/doc/~/getSentrySink +[`Client`]: https://getsentry.github.io/sentry-javascript/interfaces/_sentry_types.Client.html + + Disposable sink --------------- diff --git a/docs/package.json b/docs/package.json index e1215dd..c01baaa 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,8 @@ { - "dependencies": {}, + "dependencies": { + "@logtape/sentry": "^0.1.0", + "@sentry/node": "^8.40.0" + }, "devDependencies": { "@biomejs/biome": "^1.8.3", "@cloudflare/workers-types": "^4.20240909.0",