@degel_lc/logger 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -171,10 +171,12 @@ logs/
171
171
 
172
172
  ## Sentry連携
173
173
 
174
- `@sentry/node`との連携が可能です。error/fatalレベルのログを自動的にSentryに送信します。
174
+ `@sentry/node` および `@sentry/nextjs` との連携が可能です。error/fatalレベルのログを自動的にSentryに送信します。
175
+
176
+ ### Node.js サーバー
175
177
 
176
178
  ```typescript
177
- import { initializeLogger, setSentryModule } from '@phsk/logger';
179
+ import { initializeLogger, setSentryModule } from '@degel_lc/logger';
178
180
  import * as Sentry from '@sentry/node';
179
181
 
180
182
  // Sentryの初期化(アプリケーション側で行う)
@@ -188,12 +190,26 @@ await initializeLogger({
188
190
 
189
191
  // Sentryモジュールをインジェクト
190
192
  setSentryModule(Sentry);
193
+ ```
191
194
 
192
- // error/fatalログは自動的にSentryに送信される
193
- logger.error({ path: '/api/users' }, 'エラー発生', new Error('Something went wrong'));
195
+ ### Next.js(instrumentation.ts)
196
+
197
+ ```typescript
198
+ import { initializeLogger, setSentryModule } from '@degel_lc/logger';
199
+ import * as Sentry from '@sentry/nextjs';
200
+
201
+ export async function register() {
202
+ await initializeLogger({
203
+ logDir: './logs',
204
+ enableSentry: true,
205
+ });
206
+
207
+ // @sentry/nextjs も対応
208
+ setSentryModule(Sentry);
209
+ }
194
210
  ```
195
211
 
196
- **注意**: `@sentry/node`はオプショナルなpeerDependencyです。Sentry連携を使用する場合は別途インストールが必要です。
212
+ **注意**: `@sentry/node` または `@sentry/nextjs` はオプショナルなpeerDependencyです。Sentry連携を使用する場合は別途インストールが必要です。
197
213
 
198
214
  ## 開発
199
215
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as _sentry_node from '@sentry/node';
2
1
  import { Level } from 'pino';
3
2
 
4
3
  /**
@@ -55,8 +54,21 @@ interface LogTypeConfig {
55
54
  }
56
55
  /**
57
56
  * Sentryモジュールの型
57
+ * @sentry/node と @sentry/nextjs の両方で使用可能
58
+ * メソッド構文を使用して双変(bivariant)にし、型互換性を確保
58
59
  */
59
- type SentryModule = typeof _sentry_node;
60
+ interface SentryModule {
61
+ /**
62
+ * 例外をSentryに送信
63
+ */
64
+ captureException(error: unknown, hint?: {
65
+ extra?: Record<string, unknown>;
66
+ }): string;
67
+ /**
68
+ * メッセージをSentryに送信
69
+ */
70
+ captureMessage(message: string, captureContext?: unknown): string;
71
+ }
60
72
  /**
61
73
  * ロガー設定オプション
62
74
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@degel_lc/logger",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "phsk関連プロジェクト共通のpino-basedロギングライブラリ",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -44,11 +44,15 @@
44
44
  },
45
45
  "peerDependencies": {
46
46
  "pino": "^9.0.0",
47
- "@sentry/node": "^8.0.0 || ^9.0.0"
47
+ "@sentry/node": "^8.0.0 || ^9.0.0 || ^10.0.0",
48
+ "@sentry/nextjs": "^8.0.0 || ^9.0.0 || ^10.0.0"
48
49
  },
49
50
  "peerDependenciesMeta": {
50
51
  "@sentry/node": {
51
52
  "optional": true
53
+ },
54
+ "@sentry/nextjs": {
55
+ "optional": true
52
56
  }
53
57
  },
54
58
  "dependencies": {