[#11073] segfault printing instruction sequence for iterator — <noreply@...>
Bugs item #10527, was opened at 2007-05-02 14:42
Hi,
On Thu, May 10, 2007 at 04:51:18PM +0900, Nobuyoshi Nakada wrote:
Hi,
Hi,
This seems to make valgrind much happier.
On Thu, May 17, 2007 at 11:14:35PM +0900, Paul Brannan wrote:
Hi,
Now 'a' shows up twice in the local table:
Hi,
[#11082] Understanding code: Kernel#require and blocks. — Hugh Sasse <hgs@...>
I'm trying to debug a Rails application which complains about an
On 5/4/07, Hugh Sasse <hgs@dmu.ac.uk> wrote:
On Fri, 4 May 2007, George wrote:
On Fri, May 04, 2007 at 06:18:19PM +0900, Hugh Sasse wrote:
[#11108] pattern for implementation-private constants? — David Flanagan <david@...>
Hi,
I believe there isn't a way, but I don't think it's really necessary. Just
[#11127] Bugs that can be closed — "Jano Svitok" <jan.svitok@...>
I propose closing these bugs as invalid:
[#11145] Rational comparison to 0 fails when denominator is != 1 — <noreply@...>
Bugs item #10739, was opened at 2007-05-10 22:06
Hi,
[#11169] Allow back reference with nest level in Oniguruma for Ruby again — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <wonado@...>
Remark: I posted this text in comp.lang.ruby first, but Matz told me,
Does it make sense or is it required to write this as a RCR?
[#11176] FileUtils.rm_rf misfeature? — johan556@...
Hi!
[#11210] Pathname ascend and descend inclusive parameter — TRANS <transfire@...>
I would like to suggest that Pathname#ascend and Pathname#descend
[#11234] Planning to release 1.8.6 errata — Urabe Shyouhei <shyouhei@...>
Hi all.
On 25/05/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
[#11252] Init_stack and ruby_init_stack fail to reinit stack (threads problem?) — <noreply@...>
Bugs item #11134, was opened at 2007-05-25 12:14
Hi,
Nobuyoshi Nakada wrote:
[#11255] ruby_1_8_6 build problem (make install-doc) — johan556@...
Hi!
[#11271] providing better support through rubyforge tracker categories — Ryan Davis <ryand-ruby@...>
I'm going to make more categories for the trackers (bugs and patches)
[#11367] BUG: next in lambda: 1.8.6 differs from 1.8.4 and 1.9.0 — David Flanagan <david@...>
A toplevel next statement in a lambda does not return a value in 1.8.6,
[#11368] $2000 USD Reward for help fixing Segmentation Fault in GC — Brent Roman <brent@...>
Hi Brent,
Re: Logger::Application accessor for logger
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, Brian Candler wrote: > http://svn.ruby-lang.org/repos/ruby/trunk/lib/logger.rb > > I have come across some strangeness in Logger::Application. > > (1) attr_reader :logdev is declared - but @logdev is never initialised. Sure. Something wrong. > (2) the actual logger is @log, but is not exposed via an accessor. Yes. > This means that: > > (a) if you wish to change the format of logging from outside the app, it > gets messy: > > worker = MyApp.new # subclass of Logger::Application > worker.log = "/tmp/worker.log" # this is fine > worker.level = Logger::INFO # so is this > worker.instance_variable_get(:@log).formatter = Logger::Formatter.new # Ugh! > > This is a useful pattern when using dependency injection to prepare > the application. Agreed. It should be easily doable. > (b) if you wish to use the "logger.info" syntax within your application, > then you have to refer to the instance variable, i.e. > > @log.info "hello" > > or else define your own accessor, e.g. > > def logger; @log; end > ... > logger.info "hello" Right. > (c) if a Logger::Application wishes to pass its logger to another object, > it has to refer to @log explicitly rather than using an accessor > (which seems a little fragile) Agreed. In summary, you are completely right and I cannot remember why I do it like this... It must be a bug and should be fixed. > I expect this is unintentional, and perhaps the attr_reader :logdev was > intended to expose the underlying logger object - or maybe the LogDevice > object it contains. But either way, it always returns nil at present. > > I'm not sure of the best way to improve this. At minimum, the useless > attr_reader :logdev can be removed. > > Maybe > > def logger > @log > end > > is the easiest solution (unfortunately you can't make attr_reader :log > because method 'log' has been used to call @log.add). Attached is a patch created along to your suggestion. I'll commit if you don't have any trouble with this. Regards, // NaHi -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) iQEVAwUBRkMkNx9L2jg5EEGlAQJxpwgAm7oQRjudBOKURzxzCSacnMK9kICuf/Pb HZWF+Z/Fr6rXbDRFHA4TPDC72nNxNH058tw4l9zgBuPA9jUK2lXlMm2ERHRpSnoX 0ttKfP1aP52dqkneCuBKsFuoJdibd8NUp1nVthgkaryJolkefgmAS/HsAi29nYGS KNHEANE1Hw0haD+zpPRKAsbg+wZ6NvEr3XTD7WuqeQqgH6VNsyl5IP6xGKfXeJdv hx+jHBstiDyc3r8XOGau7b5JMM/YELYr6v48SW/dSfkfNT+EGJ2wiypJvR6qWglR AWIndmv+5+UY6NBNPPdkljUm6GT2SvENx/WygM3w2+sTclo7SYUG2Q== =SCoL -----END PGP SIGNATURE-----
Attachments (1)
Index: lib/logger.rb
===================================================================
--- lib/logger.rb (revision 12272)
+++ lib/logger.rb (working copy)
@@ -1,8 +1,9 @@
# logger.rb - saimple logging utility
# Copyright (C) 2000-2003, 2005 NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>.
-require 'monitor'
+# = logger.rb
+#
# Simple logging utility.
#
# Author:: NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
@@ -12,6 +13,11 @@
# license; either the dual license version in 2003, or any later version.
# Revision:: $Id$
#
+# See Logger for documentation.
+#
+
+
+#
# == Description
#
# The Logger class provides a simple but sophisticated logging utility that
@@ -149,8 +155,8 @@
#
# == Format
#
-# Log messages are rendered in the output stream in a certain format. The
-# default format and a sample are shown below:
+# Log messages are rendered in the output stream in a certain format by
+# default. The default format and a sample are shown below:
#
# Log format:
# SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message
@@ -163,11 +169,18 @@
# logger.datetime_format = "%Y-%m-%d %H:%M:%S"
# # e.g. "2004-01-03 00:54:26"
#
-# There is currently no supported way to change the overall format, but you may
-# have some luck hacking the Format constant.
+# You may change the overall format with Logger#formatter= method.
#
+# logger.formatter = proc { |severity, datetime, progname, msg|
+# "#{datetime}: #{msg}\n"
+# }
+# # e.g. "Thu Sep 22 08:51:08 GMT+9:00 2005: hello world"
+#
+require 'monitor'
+
+
class Logger
VERSION = "1.2.6"
/: (\S+),v (\S+)/ =~ %q$Id$
@@ -625,8 +638,8 @@
class Application
include Logger::Severity
+ # Name of the application given at initialize.
attr_reader :appname
- attr_reader :logdev
#
# == Synopsis
@@ -665,10 +678,22 @@
status
end
+ # Logger for this application. See the class Logger for an explanation.
+ def logger
+ @log
+ end
+
#
- # Sets the log device for this application. See the class Logger for an
- # explanation of the arguments.
+ # Sets the logger for this application. See the class Logger for an explanation.
#
+ def logger=(logger)
+ @log = logger
+ end
+
+ #
+ # Sets the log device for this application. See <tt>Logger.new</tt> for an explanation
+ # of the arguments.
+ #
def set_log(logdev, shift_age = 0, shift_size = 1024000)
@log = Logger.new(logdev, shift_age, shift_size)
@log.progname = @appname