You might be interested in looking at
Krang. Krang includes a module called
Krang::Log which writes log messages to
logs/krang.log. The current
LogLevel, as configured in
conf/krang.conf determines which messages actually get written to the log, and it's configurable by module. We've found it to be a handy tool and the interface is very lightweight:
use Krang::Log qw(debug info critical);
debug("Something for the developers to read.");
info("An important note.");
critical("HOLY CRAP, FIX ME NOW!!!");
-sam