Method_missing seems to be...well, missing.


I can't figure this out for the life of me...

The code below is for a simple logger class I wrote to go along with a personal project. To avoid having to write a ton of code I overrode method_missing thereby allowing calls like "logger_instance.emergency('emergency error text')".

For whatever reason, when method_missing-based calls are made, nothing happens. The code doesn't hang or crash, it just seems to skip right over the logging code and return. No errors are thrown that I can see, and it's really starting to bother me. Ideas?

class Utility::Log

LOG_FILE = './operator_log.txt'

def initialize

def method_missing(level, *mesg)
log(mesg[0], level.capitalize)

def log(mesg, level = 'NOTICE')
@logger.write( + "::#{level}::" + mesg + "\n")


def _new
if File.file?(LOG_FILE)
@logger =, 'a')

def _close


About this Entry

This page contains a single entry by Philip Ratzsch published on April 5, 2008 5:03 PM.

Back from Utah was the previous entry in this blog.

Anti-objects is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.