[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Question about Lo4R

Zach

1/29/2006 9:09:00 PM

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




3 Answers

tsumeruby

1/29/2006 9:23:00 PM

0

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


Alex Combas

1/29/2006 10:28:00 PM

0

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=5.10
DISTRIB_CODENAME=breezy
DISTRIB_DESCRIPTION="Ubuntu (The Breezy Badger Release)"

$ ruby -v
ruby 1.8.3 (2005-06-23) [i486-linux]



On 1/29/06, tsumeruby@tsumelabs.com <tsumeruby@tsumelabs.com> wrote:
> 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
>
>


--
Alex Combas
http://noodlejunkie.blo...


tsumeruby

1/29/2006 10:46:00 PM

0

On Monday 30 January 2006 07:27 am, Alex Combas wrote:
> $ cat /etc/lsb-release
> DISTRIB_ID=Ubuntu
> DISTRIB_RELEASE=5.10
> DISTRIB_CODENAME=breezy
> DISTRIB_DESCRIPTION="Ubuntu (The Breezy Badger Release)"
>
> $ ruby -v
> ruby 1.8.3 (2005-06-23) [i486-linux]
>

Exactly, 1.8.3 was released on 09/21/2005. Somebody took a development
snapshot instead of taking critical patches and declared it the ruby to be
used in Ubuntu Breezy. The people who noticed the version were a bit too late
and Breezy had already been frozen.

Tsume

> On 1/29/06, tsumeruby@tsumelabs.com <tsumeruby@tsumelabs.com> wrote:
> > 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
>
> --
> Alex Combas
> http://noodlejunkie.blo...