fluent / fluent/fluent-logger-java
Improving error handling
- Lenguaje dominante
- Java
- Estrellas
- 210
- Forks
- 86
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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?
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- observability-sre
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 20/100