CommercePeer Brand Logo


Programmatically: Magento 2 Product Entity

Programmatically: How to create caustom Magento logging

Step 1: Create a custom log file

In your Magento module's etc/config.xml file, add the following code:

<config>
    <global>
        <log>
            <handlers>
                <custom_logger>
                    <type>logger</type>
                    <class>Mage_Core_Model_Log_Abstract</class>
                    <methods>
                        <write />
                    </methods>
                    <filename>custom.log</filename>
                    <filemode>0520</filemode> <!-- 0520 = append, 0644 = overwrite -->
                </custom_logger>
            </handlers>
        </log>
    </global>
	</config>

This code defines a custom logger called custom_logger that will write to a file named custom.log.

Step 2: Create a custom log logger

In your Magento module's Model directory, create a new PHP file (e.g. Logger.php) and add the following code:


	class YourModule_Model_Logger extends Zend_Log {

    protected $_logger;

    public function __construct($adapter = null) {
        parent::__construct($adapter);
        $this->_logger = Mage::getLog('custom_logger');
    }

    public function log($message, $level = Zend_Log::INFO) {
        $this->_logger->log($message, $level);
    }
    }
	

This code extends the Zend_Log class and sets up the custom logger.

Step 3: Use the custom logger in your code

In your Magento module's code, you can now use the custom logger to log messages. For example:


		$log = Mage::getModel('yourmodule/logger');
		$log->log('This is a custom log message', Zend_Log::INFO);
	

This will write the message "This is a custom log message" to the custom.log file with an info level.

Full code example

Here is the full code example:

app/code/local/YourModule/etc/config.xml


	<config>
    <global>
        <log>
            <handlers>
                <custom_logger>
                    <type>logger</type>
                    <class>Mage_Core_Model_Log_Abstract</class>
                    <methods>
                        <write />
                    </methods>
                    <filename>custom.log</filename>
                    <filemode>0520</filemode> <!-- 0520 = append, 0644 = overwrite -->
                </custom_logger>
            </handlers>
        </log>
    </global>
	</config>
	

app/code/local/YourModule/Model/Logger.php


	class YourModule_Model_Logger extends Zend_Log {

    protected $_logger;

    public function __construct($adapter = null) {
        parent::__construct($adapter);
        $this->_logger = Mage::getLog('custom_logger');
    }

    public function log($message, $level = Zend_Log::INFO) {
        $this->_logger->log($message, $level);
    }
	}
	

app/code/local/YourModule/controllers/IndexController.php


	class YourModule_IndexController extends Mage_Core_Controller_Varien_Action {

    public function indexAction() {
        $log = Mage::getModel('yourmodule/logger');
        $log->log('This is a custom log message', Zend_Log::INFO);
        // ... rest of your code ...
    }
    }
	

LET’S WORK TOGETHER

We love working with Small Businesses, Retailers, Manufacturers. Our team is here to Help.

→ Schedule Free Consultant Now
Copyright © 2024 CommercePeer. All Rights Reserved.