Bug #8567
closedLogger#add can never return +false+
Description
The ruby Logger in the stdlib has a discrepancy between the documentation and the source code. The documentation states "=== Return +true+ if successful, +false+ otherwise" (https://github.com/ruby/ruby/blob/trunk/lib/logger.rb#L342-L347). However, there is no code path that allows +false+ to be returned from this method.
The code was originally included in the stdlib by @nahi (Hiroshi Nakamura) back in 2003. The documentation was clarified in 2012 by @drbrain (Eric Hodel) to indicate that the method will return +true+ regardless of the success or failure of the method.
My expectation would be for this method to return +false+ if the message was not logged. This code block (https://github.com/ruby/ruby/blob/trunk/lib/logger.rb#L370-L372) would be the logical place in the code to return +false+; in this case the message was not logged successfully.
This affects all version of Ruby.
Updated by drbrain (Eric Hodel) almost 11 years ago
Likely the documentation of the return value is in error and should be removed.
Updated by zzak (zzak _) almost 11 years ago
- Category set to doc
- Status changed from Open to Assigned
- Assignee set to zzak (zzak _)
Updated by zzak (zzak _) almost 11 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r41901.
Tim, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- lib/logger.rb (#add): Remove incorrect rdoc for return value
[Bug #8567] Reported by Tim Pease.