fluent / fluent/fluent-logger-java

Current Error Handling does not return false on logging errors

未关闭
#66 3 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
210
派生
86
PR 合并指标
30 天内没有已合并 PR

描述

There are two types of errors I've run into:

1. Network Errors:
Here I created an app to log to a remote Fluentd instance.
`private static final FluentLogger LOG = FluentLogger.getLogger("audit", "10.0.0.1", 22224);`
However, I forgot to start the remote Fluentd instance before running the app, so I got Network Errors
`
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.fluentd.logger.sender.RawSocketSender.connect(RawSocketSender.java:85)
at org.fluentd.logger.sender.RawSocketSender.reconnect(RawSocketSender.java:98)
at org.fluentd.logger.sender.RawSocketSender.flush(RawSocketSender.java:206)
at org.fluentd.logger.sender.RawSocketSender.send(RawSocketSender.java:195)
at org.fluentd.logger.sender.RawSocketSender.emit(RawSocketSender.java:157)
at org.fluentd.logger.sender.RawSocketSender.emit(RawSocketSender.java:139)
at org.fluentd.logger.sender.RawSocketSender.emit(RawSocketSender.java:134)
at org.fluentd.logger.FluentLogger.log(FluentLogger.java:101)
at org.fluentd.logger.FluentLogger.log(FluentLogger.java:86)
at LoggerInfra.log(FluentdLoggerApp.java:27)
at LoggerCaller.testLogger(FluentdLoggerApp.java:79)
at FluentdLoggerApp.main(FluentdLoggerApp.java:112)
`

There error was printed to console (expected because of limited error handling #15), but the `log()` call returned `true` instead of `false` which hid the internal failure.
Result of logic in [RawSocketSender.java#L204](https://github.com/fluent/fluent-logger-java/blob/master/src/main/java/org/fluentd/logger/sender/RawSocketSender.java#L204) which simple logs the error message to `LOG.error()`.

2. A second error is that I ran out of buffer space. In this setup I had my app logging to a local Fluentd instance and buffering to file. The local instance then forwards the logs to a remote instance. However the remote instance was not running, so the local buffer space eventually got filled up. Again the `log()` call returned true and the stack trace was printed out to terminal.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。