Custom Magento Module Log

Heads up! This article was written over 14 years ago. While it may still be helpful, please verify any information, as my perspectives and practices may have evolved.

PHP errors and messages from other modules can clutter up your tail -f when debugging, and sometimes it’s just nice to have separate logs to the main system.

Set up your own log adapter with:

1
$my_log = Mage::getModel('core/log_adapter', 'my_module.log');

and log away!

1
$my_log->log($message);

Extra points for wrapping it up in a class:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Nick_Module_Model_Log {
    protected $\_adapter;

    public \_\_construct() {
        $this->\_adapter = Mage::getModel('core/log_adapter', 'my_module.log');
    }

    // It's public incase we want to use ->debug(), ->info(), and friends
    public function getAdapter() {
        return $this->\_adapter;
    }

    public function log($message) {
        $this->getAdapter()->log($message);
    }
}

$my_log = Mage::getSingleton('nick/log');
$my_log->log("Logging away!");