Forum: Ruby Question about Lo4R

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0f87a861e2527f69b400a8557c8c2d20?d=identicon&s=25 Zach Moazeni (Guest)
on 2006-01-29 22:12
(Received via mailing list)
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
19f65b7dca6831edf989224b5ebd3fe0?d=identicon&s=25 unknown (Guest)
on 2006-01-29 22:24
(Received via mailing list)
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
622fa8560c82dfaa59c91ec75efb0c19?d=identicon&s=25 Alex Combas (Guest)
on 2006-01-29 23:30
(Received via mailing list)
$ 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]
19f65b7dca6831edf989224b5ebd3fe0?d=identicon&s=25 unknown (Guest)
on 2006-01-29 23:48
(Received via mailing list)
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
This topic is locked and can not be replied to.