fluent / fluent/fluent-logger-java

Improving error handling

オープン
#15 コメント 15 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
210
フォーク
86
PR マージ指標
30日以内にマージされた PR はありません

説明

I and @komamitsu san discussed how to improve error reporting of the current 0.2.x versions.

The major changes we considered are:
- Add `setHandler(handler)` method to FluentLogger to accept an application-specific error handler.
- In the error handler, provide a method for retrieving the remaining logs (the last one or all logs) that are not yet sent to fluentd.
- The last logs are message packed Event objects. We need to provide a decoder so that the last log is meaningful to the user.

In this change, we should consider the following problem:
- (Plan 1) A timing to report error. Currently errors can be reported in three ways: return value of `log` method (true or false), unmanaged exceptions or exceptions thrown when the buffer is full. If an error handler is added, `log` method should be **non-blocking** method, and the error must be handled in the user-defined error handler (in the subsequent code or in another thread). Does it the right choice?

Another option would be:
- (Plan 2) Making `log` a **blocking** method and reporting errors by Exception rather than returning true or false. The last log event should be included in the thrown exception.

After writing this ticket, Plan 2 now looks simpler to me.
Any idea?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by reviewing the FluentLogger API and the current error paths described for log return values, unmanaged exceptions, and buffer-full exceptions. Compare the proposed handler and blocking-exception plans, including access to unsent message-packed Event objects. Done requires an agreed design and a defined error-reporting behavior for the 0.2.x versions.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
observability-sre
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。