# Question about Lo4R

**URL:** <https://www.ruby-forum.com/t/question-about-lo4r/98585>\
**Category:** Ruby\
**Created:** [January 29, 2006, 10:12pm UTC](https://www.ruby-forum.com/t/question-about-lo4r/98585 "2006-01-29T22:12:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![zmoazeni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/3da27b/32.png) [@zmoazeni](https://www.ruby-forum.com/u/zmoazeni)\
**Post date:** [January 29, 2006, 10:12pm UTC](https://www.ruby-forum.com/t/question-about-lo4r/98585/1 "2006-01-29T22:12:04Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![zmoazeni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/3da27b/32.png) [@zmoazeni](https://www.ruby-forum.com/u/zmoazeni)\
**Post date:** [January 29, 2006, 10:24pm UTC](https://www.ruby-forum.com/t/question-about-lo4r/98585/2 "2006-01-29T22:24:11Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![zmoazeni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/3da27b/32.png) [@zmoazeni](https://www.ruby-forum.com/u/zmoazeni)\
**Post date:** [January 29, 2006, 11:30pm UTC](https://www.ruby-forum.com/t/question-about-lo4r/98585/3 "2006-01-29T23:30:32Z")

</div>

$ 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]

---

<div class="post-metadata">

**Author:** ![zmoazeni](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/3da27b/32.png) [@zmoazeni](https://www.ruby-forum.com/u/zmoazeni)\
**Post date:** [January 29, 2006, 11:48pm UTC](https://www.ruby-forum.com/t/question-about-lo4r/98585/4 "2006-01-29T23:48:38Z")

</div>

On Monday 30 January 2006 07:27 am, Alex C. 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
