Logger#add can never return +false+
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 zzak (Zachary Scott) almost 7 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.