[
https://issues.apache.org/jira/browse/SSHD-1058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17179376#comment-17179376
]
Lyor Goldstein commented on SSHD-1058:
--------------------------------------
We apply a consistent policy of logging exception in our code which basically
states that exception "summaries" are logged at ERROR level and their details
at INFO if DEBUG is enabled. I am not convinced that the use-case presented in
this issue is compelling enough to make an exception in this case - though I do
understand the reasoning behind it and can relate to it.
{quote}
The caller should decide how to deal with the exception and log at error level
if needed.
{quote}
The same may be said for +any+ exception thrown by the code - not just here.
For your use-case, this particular exception logging is "annoying" - for others
there may be other use-cases that "annoy" them. We need to choose a certain
policy that we think will be acceptable enough by the vast majority of our
users - hence the choice we made.
> ChannelOutputStream#flush should not log at error level
> -------------------------------------------------------
>
> Key: SSHD-1058
> URL: https://issues.apache.org/jira/browse/SSHD-1058
> Project: MINA SSHD
> Issue Type: Bug
> Affects Versions: 2.5.0, 2.5.1
> Environment: Linux, Java 11
> Reporter: Markus Spann
> Assignee: Lyor Goldstein
> Priority: Minor
>
> When calling flush on ChannelOutputStream, Window.waitForSpace may throw a
> WindowClosedException. This exception is always logged at error level, then
> rethrown. If Debug is enabled on the logger, the error log is issued twice
> (second time with stacktrace).
> During deinitialization it is common practice to call flush on output
> streams. Due to the asynchronous nature of the code in this library, the call
> may fail. The caller should decide how to deal with the exception and log at
> error level if needed.
> The implementation should not log at error level regardless.
> I would suggest INFO level instead (if logging at all).
>
> {code:java}
> // lines 202 ff.
> if (log.isDebugEnabled()) {
> log.info("flush({}) failed ({}) to wait for space of len={}: {}: ", this,
> e.getClass().getSimpleName(), total, e.getMessage(), e); // with stacktrace
> } else {
> log.info("flush({}) failed ({}) to wait for space of len={}: {}",
> this, e.getClass().getSimpleName(), total, e.getMessage());
> }
> throw e;
> {code}
> Thanks,
> Markus
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]