From: tsumeruby@... Date: 2006-01-30T06:23:21+09:00 Subject: Re: Question about Lo4R Just a note, the ruby included with breezy is not 1.8.3 release. ruby -v Most people build their own snapshot of ruby. I never trust a distributors ruby because they 1) keep taking snapshots from a SCM, or 2) make modifications which break existing code. Tsume On Monday 30 January 2006 06:09 am, Zach Moazeni wrote: > Hello, > I'm having an issue with a Formatter for Log4R. > > I'm trying to use the %c format directive to display the Line Number of > the file and for some reason it keeps throwing an error. > > I'm using Ubuntu Breezy 5.1, Ruby 1.8.3, and Log4R 1.0.5. Is anyone else > having any similar issues? > > Error Msg : > (eval):2:in `format': undefined method `[]' for nil:NilClass > (NoMethodError) from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:118:in `format' > from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:108:in > `canonical_log' > from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:108:in `synch' > from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:128:in > `synchronize' > from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:128:in `synch' > from > /usr/local/lib/site_ruby/1.8/log4r/outputter/outputter.rb:108:in > `canonical_log' > from (eval):3:in `debug' > from (eval):8:in `debug' > from (eval):8:in `each' > from (eval):8:in `debug' > from ./blah.rb:37:in `happy' > from ./blah.rb:42 > > > > Here is the small snipbit of code > > require 'log4r' > include Log4r > > class MyClass > > > def initialize > puts('init') > @my_log = Logger.new 'myLog' > formatter = > PatternFormatter.new( > #:pattern => "%l[%d] %t %1M") > > :pattern => "%5l [%d] %t: %.25M", > :date_pattern => "%H:%M:%S") > > @my_log.outputters = FileOutputter.new('myLog', > > :filename => "log_file", > :trunc => false, > :formatter => formatter) > > puts(Kernel.caller[0].to_s) > end > > protected > def logger > puts("got logger") > @my_log > end > > end > > class MyChild < MyClass > def initialize > super > end > > def happy > logger.debug('happy') > end > end > > c = MyChild.new > c.happy > > > I'd appreciate any and all input. Thanks! > -Zach