Como cria um log パーソナライズドのマジェント 2


コンテキスト



ああ、ログ?



Log de dados é uma expressão utilizada para descrever o processo de registro de eventos relevantes num sistema computacional. Esse registro pode ser utilizado para restabelecer o estado original de um sistema ou para que um administrador conheça o seu comportamento no passado. Um arquivo de log pode ser utilizado para auditoria e diagnóstico de problemas em sistemas computacionais
Wikipedia



作成されたログのフォームに存在し、PHP を使用した PSR や Magento 2 への変換、インターフェイス \Psr\Log\LoggerInterface の実装などがあります. Saiba mais a página official sobre na PSR-3 - Logger Interface .


Código para cria um Log



Para cria um log personalizado no Magento 2 é necessário estender a classe por padrão \Monolog\Logger que implementa a \Psr\Log\LoggerInterface . Este tipo de arquivo deve seguir a estruturas de pastas \{Vendor}\{Module}\Logger\{Loggername}.php .

カソ セジャ ネセサリオ クリア アルグム ノヴォ ティポ デ ログ ネステ アーキヴォ ケ セラ インプリメンダド オ メトド エ/オ ノーム、ティポ エ ヴァロー ド ログ.

<?php

namespace {Vendor}\{Module}\Logger;

use Monolog\Logger;

class {Loggername} extends Logger
{
    public const {CUSTOM_LOG_NAME} = {VALUE};

    protected static $levels = array(
        self::DEBUG     => 'DEBUG',
        self::INFO      => 'INFO',
        self::NOTICE    => 'NOTICE',
        self::WARNING   => 'WARNING',
        self::ERROR     => 'ERROR',
        self::CRITICAL  => 'CRITICAL',
        self::ALERT     => 'ALERT',
        self::EMERGENCY => 'EMERGENCY',
        self::{CUSTOM_LOG_NAME} => '{CUSTOM_LOG_NAME}',
    );

    public function {methodName}(string $message, array $context = []): bool
    {
        return $this->addRecord(static::{CUSTOM_LOG_NAME}, $message, $context);
    }
}


ハンドラ



クラスの Handler は、重要な問題を解決するためのヒントを定義します. O caminho do arquivo inicia a partir do diretório raiz do Magento. Este tipo de arquivo deve seguir a estruturas de pastas \{Vendor}\{Module}\Logger\{HandlerName}.php . Cada arquivo de Handler deve estender a classe \Magento\Framework\Logger\Handler\Base .

<?php

namespace {Vendor}\{Module}\Logger;

use {Vendor}\{Module}\Logger\{Loggername};
use Magento\Framework\Logger\Handler\Base;

class {HandlerName} extends Base
{
    /**
     * @var int
     */
    protected $loggerType = {Loggername}::{CUSTOM_LOG_NAME};

    /**
     * @var string
     */
    protected $fileName = '/var/log/{fileName}.log';
}


ログのヒント




コンスタンテス
セヴェリダーデ
説明


デバッグ
100
詳細情報はデバッグ処理を行いません.

情報
200
イベント情報.

知らせ
250
Eventos incomuns.

警告
300
Evento que ocorrem como extrasões, mas não são erros (depreciações, avisos など).

エラー
400
エラー エム テンポ デ 実行.

致命的
500
批評家の条件.

アラート
550
Alertas de ações que devem ser tomadas immediatamente.

緊急
600
緊急のアラート.


di.xml



O arquivo di.xml será definido os tipos de argumentos que será inseridos nas class criadas. Este tipo de arquivo deve seguir a estruturas de pastas \{Vendor}\{Module}\etc\{area}\di.xml .

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="{Vendor}\{Module}\Logger\{HandlerName}">
        <arguments>
            <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
        </arguments>
    </type>
    <type name="{Vendor}\{Module}\Logger\{Loggername}">
        <arguments>
            <argument name="name" xsi:type="string">{logName}</argument>
            <argument name="handlers" xsi:type="array">
                <item name="system" xsi:type="object">{Vendor}\{Module}\Logger\{HandlerName}</item>
            </argument>
        </arguments>
    </type>
</config>



ファイナライズ



🔗 Valores entre chaves ( {test} ) devem ser alterados na implementação do código.

代替としてのハビリタンド



Apague os arquivos que são gerados na compilação do Magento e execute o commando PHP para gerar a configuração das injeções de dedependência e todas as classes ausentes que precisam ser geradas (proxys,interceptors, etc) e para limpar todos os caches de armazenamento em cache doプロセス.

rm -rf var/generation/
rm -rf generated/
php bin/magento setup:di:compile
php bin/magento cache:clean
php bin/magento flush


Diretórios e Arquivos



Segue a a a a a a lista de diretórios e arquivos que devem ser criados.

- app/
  - code/
    - {Vendor}/
      - {Module}/
        - etc/
          - {area}/
            - di.xml
          - module.xml
        - Logger/
          - {HandlerName}.php
          - {Loggername}.php
        - registration.php
        - composer.json