Skip to content

Commit

Permalink
Fixes #1197 adds ExtendedErrorHandler info in JP (#1227)
Browse files Browse the repository at this point in the history
  • Loading branch information
wongjas authored Dec 3, 2021
1 parent ab92b69 commit b3eb15b
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
36 changes: 35 additions & 1 deletion docs/_advanced/ja_error_handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,38 @@ app.error((error) => {
// メッセージ再送信もしくはアプリを停止するかの判断をするためにエラーの詳細を出力して確認
console.error(error);
});
```
```

<details class="secondary-wrapper">
<summary class="section-head" markdown="0">
<h4 class="section-head">エラーハンドラーでのさらなるデータの参照</h4>
</summary>

<div class="secondary-content" markdown="0">
グローバルエラーハンドラーの中で、リクエストからのデータをログ出力したい場合もあるでしょう。あるいは単に Bolt に設定した `logger` を利用したい場合もあるでしょう。

バージョン 3.8.0 からは、コンストラクターに `extendedErrorHandler: true` を渡すと、エラーハンドラーはリクエストの `error``logger``context``body` を含むオブジェクトを受け取ります。

`context``body` オブジェクト内にアクセスしたいプロパティが存在するかどうかをチェックすることをおすすめします。なぜなら `body` オブジェクト内に存在するデータはイベント毎に異なりますし、エラーはリクエストのライフサイクルの中のどんなタイミング(例えば `context` のプロパティが設定される前)でも発生しうるからです。
</div>

```javascript
const { App } = require('@slack/bolt');

const app = new App({
signingSecret: process.env.SLACK_SIGNING_SECRET,
token: process.env.SLACK_BOT_TOKEN,
extendedErrorHandler: true,
});

app.error(({ error, logger, context, body }) => {
// Bolt で指定した logger を使ってエラー内容をログ出力
logger.error(error);

if (context.teamId) {
// デバッグのために teamId を使ってなんらかの処理
}
});
```

</details>
1 change: 1 addition & 0 deletions docs/_tutorials/ja_reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ App オプションは、`App` のコンストラクターに渡します。
| `authorize` | 複数のチームでのインストールをサポートする場合に使用する関数。どのトークンが受信イベントに関連づけられているかを判断するのに使用します。`authorize` 関数に渡される元データには、場合によって `userId``conversationId``enterpriseId``teamId``isEnterpriseInstall` が含まれます(受信イベントによって異なります)。`authorize` 関数は、`botToken``botId``botUserId`、または `userToken`を返します。[ビルトインの OAuth サポート](/bolt-js/concepts#authenticating-oauth)を使用する場合、`authorize` 関数は自動的に作成されるため、自分で渡す必要はありません。`authorize` 関数について詳しくは、こちらを参照してください。 |
| `logger` | ビルトインのロガーの代わりにカスタムのロガーを渡すためのオプション。ロガーには特定のメソッドが実装されている必要があります。これには [`Logger` インターフェイス](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts)で定義されている `setLevel(level:LogLevel)``getLevel()``setName(name: string)``debug(...msgs: any\[])``info(...msgs: any\[])``warn(...msgs: any\[])``error(...msgs: any\[])` があります。ログ出力の詳細については、[ドキュメント](/bolt-js/concepts#logging)を参照してください。 |
| `logLevel` | 出力するログのレベルを指定するオプション。`LogLevel` の出力に含まれる情報のレベルには、重要度の低い順から高い順に `DEBUG``INFO``WARN``ERROR` があります。デフォルトの `logLevel``INFO` に設定されています。ログ出力の詳細については、[ドキュメント](/bolt-js/concepts#logging)を参照してください。 |
| `extendedErrorHandler` | 真偽値を指定するオプションで、 `true` に設定するとさらなるリクエストのコンテキスト情報を含んだオブジェクトがグローバルエラーハンドラーに渡されます。 バージョン 3.8.0 から利用することができます。 デフォルトは `false` です。 より高度なエラーの処理に関する詳細は [API ドキュメント](/bolt-js/ja-jp/concepts#error-handling)を参照してください。 |
| `ignoreSelf` | アプリ自身から発信されたメッセージをミドルウェアの関数で無視するかどうかを指定する真偽値。`botId` が必要です。デフォルトは `true` です。 |
| `clientOptions.slackApiUrl` | Slack Web API で使用するエンドポイントをカスタマイズできます。これが使用されるのはほとんどがテスト用途です。 |
| `socketMode` | 真偽値を指定するオプションで、`true` に設定するとアプリは[ソケットモード](/bolt-js/ja-jp/concepts#socket-mode)で起動します。ソケットモードは WebSocket のコネクションを通して Slack からのデータを受信する機能です。デフォルトは `false` です。
Expand Down

0 comments on commit b3eb15b

Please sign in to comment.