# Log4r

**URL:** <https://www.ruby-forum.com/t/log4r/100867>\
**Category:** Ruby\
**Created:** [August 1, 2006, 5:49pm UTC](https://www.ruby-forum.com/t/log4r/100867 "2006-08-01T17:49:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pkspence](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e57/32.png) [@pkspence](https://www.ruby-forum.com/u/pkspence)\
**Post date:** [August 1, 2006, 5:49pm UTC](https://www.ruby-forum.com/t/log4r/100867/1 "2006-08-01T17:49:34Z")

</div>

The following code is throwing errors below. It looks like the wrong  
module is getting referenced. The constructor for  
c:\ruby\lib\ruby\1.8\Logger.rb takes 3-arguments. Seems to be some  
confusion here. Can someone point me in the right direction?

Thanks!

require ‘log4r’  
include Log4r

#-- error getting thrown on this line  
mylog = Logger.new(‘errorLogger.txt’, nil, nil, true)

# Now we can log.

def do\_log(log)  
log.debug “This is a message with level DEBUG”  
log.info “This is a message with level INFO”  
log.warn “This is a message with level WARN”  
log.error “This is a message with level ERROR”  
log.fatal “This is a message with level FATAL”  
end

do\_log(mylog)

#–  
#-- errors  
#–  
wrong number of arguments (4 for 3)  
testLogger.rb:18:in `initialize' testLogger.rb:18 testLogger.rb:18:in`initialize’: wrong number of arguments (4 for 3)  
(ArgumentError)  
from testLogger.rb:18

---

<div class="post-metadata">

**Author:** ![pkspence](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e57/32.png) [@pkspence](https://www.ruby-forum.com/u/pkspence)\
**Post date:** [August 1, 2006, 8:07pm UTC](https://www.ruby-forum.com/t/log4r/100867/2 "2006-08-01T20:07:15Z")

</div>

Logger.new() takes only three (not 4) parameters.

See [Class: Log4r::Logger](http://log4r.sourceforge.net/rdoc/classes/Log4r/Logger.html).

---

<div class="post-metadata">

**Author:** ![pkspence](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a88e57/32.png) [@pkspence](https://www.ruby-forum.com/u/pkspence)\
**Post date:** [August 1, 2006, 8:57pm UTC](https://www.ruby-forum.com/t/log4r/100867/3 "2006-08-01T20:57:06Z")

</div>

Nicolai Reuschling wrote:

> Logger.new() takes only three (not 4) parameters.
> 
> See [Class: Log4r::Logger](http://log4r.sourceforge.net/rdoc/classes/Log4r/Logger.html).

This is what threw me off…

```
def initialize(_fullname, _level=nil, _additive=true, _trace=false)
  # validation
  raise ArgumentError, "Logger must have a name", caller if 

```

\_fullname.nil?  
Log4rTools.validate\_level(\_level) unless \_level.nil?  
validate\_name(\_fullname)

```
  # create the logger
  @fullname = _fullname
  @outputters = []
  @additive = _additive
  deal_with_inheritance(_level)
  LoggerFactory.define_methods(self)
  self.trace = _trace
  Repository[@fullname] = self
end

```
