How to create a separate log file to print the admin details who deletes a customer profile? [duplicate]
-
07-03-2021 - |
Domanda
I want to create a new log file which will print the admin details who deletes a customer profile from admin panel in magento 2. How can I do that?
Soluzione
In your di.xml
- app/code/Vendor/Module/etc/di.xml
<type name="Vendor\Module\Logger\Handler">
<arguments>
<argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
</arguments>
</type>
<type name="Vendor\Module\Logger\Logger">
<arguments>
<argument name="name" xsi:type="string">customLogger</argument>
<argument name="handlers" xsi:type="array">
<item name="system" xsi:type="object">Vendor\Module\Logger\Handler</item>
</argument>
</arguments>
</type>
- Create a Logger folder in your module and Logger.php file
app/code/Vendor/Module/Logger/Logger.php
<?php
namespace Vendor\Module\Logger;
class Logger extends \Monolog\Logger
{
}
- Create a Handler.php File in Logger Folder
app/code/Vendor/Module/Logger/Handler.php
<?php
namespace Vendor\Module\Logger;
use Monolog\Logger;
use Magento\Framework\Logger\Handler\Base;
class Handler extends \Magento\Framework\Logger\Handler\Base
{
/**
*Logging level
*@var int
*/
protected $loggerType = Logger::INFO;
/**
*File Name
*@var string
*/
protected $fileName = '/var/log/custom.log';
}
Use this in your Module instead of this
use Psr\Log\LoggerInterface;
add your custom loggeruse Vendor\Module\Logger\Logger;
use Vendor\Module\Logger\Logger;
class Test
{
public function __construct(
Logger $logger
) {
$this->logger = $logger;
}
}
You can use it as
$this->logger->info('this is custom logger);
Hope it helps.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange