zero1/module-custom-logging

允许您根据环境配置不同的日志 '堆栈'。这使您能够在非生产环境中设置 DEBUG 级别,在生产环境中设置 ERROR 级别。

1.0.1 2019-06-24 11:05 UTC

This package is auto-updated.

Last update: 2024-09-25 07:07:55 UTC


README

允许按环境配置日志,同时仍将日志配置保留在源代码控制中。

100% 兼容 Mdoq

要设置,您需要将以下片段添加到适当的文件中。
在生产网站上,请确保将 stack 值更改为 production
除此之外,如果您正在运行多个 Webhead,您可以将 hardware_instance 值用于识别每个 Webhead。例如 admin-01web-asg-01,这将随后添加到日志中。

env.php 配置示例

'logging' => [
        'hardware_instance' => 'server1-blahblah',
        'stack' => 'non_production'
    ],

config.php 配置示例

'logging' => [
        'stacks' => [
            'production' => [
                'handlers' => [
                    'productionDefaultLogger' => [],
                ],
                'common_formatter' => \Monolog\Formatter\JsonFormatter::class,
                'common_processors' => [
                    \Monolog\Processor\GitProcessor::class,
                    \Monolog\Processor\IntrospectionProcessor::class,
                    \Monolog\Processor\WebProcessor::class,
                    \Zero1\CustomLogging\Logger\Processor\HardwareInstance::class,
                ]
            ],
            'non_production' => [
                'handlers' => [
                    'nonProductionDefaultLogger' => [],
                    'nonProductionDebugLogger' => [],
                ],
                'common_formatter' => 'loggingLineFormatter',
                'common_processors' => [
                    \Monolog\Processor\GitProcessor::class,
                    \Monolog\Processor\IntrospectionProcessor::class,
                    \Monolog\Processor\WebProcessor::class,
                    \Zero1\CustomLogging\Logger\Processor\HardwareInstance::class,
                ]
            ]
        ]
    ]

附加信息

app/etc/env.php 中所做的更改是针对特定环境的。在这里,您可以配置要使用的日志 '堆栈'。此值将不在源代码控制中。'堆栈' 仅是一个指向在 app/etc/config.php 中定义的一组日志配置的友好名称。在 app/etc/config.php 中,您可以配置任意数量的不同堆栈,例如 'production'、'staging'、'local'。每个堆栈都存储在源代码控制中,以便代码库上的任何人都可以使用这些堆栈。

除了能够通过单个环境值更改 '堆栈' 之外,我们还可以向所有记录器添加附加内容,以便所有消息都包含此信息。默认示例添加了四个 '处理器',用于添加额外信息。

'common_processors' => [
    \Monolog\Processor\GitProcessor::class,
    \Monolog\Processor\IntrospectionProcessor::class,
    \Monolog\Processor\WebProcessor::class,
    \Zero1\CustomLogging\Logger\Processor\HardwareInstance::class,
]

这些将被添加到所有处理器中

'handlers' => [
    'nonProductionDefaultLogger' => [],
    'nonProductionDebugLogger' => [],
 ]

这些链接到在 etc/di.xml 中定义的记录器

这与 Magento 内核的不同之处

  • 在 Magento 内核中,您必须在受源代码控制的文件中进行更改以更改日志详细程度。(这不理想,因为生产环境应该与预生产环境具有相同的源文件,但它们应该有不同的日志详细程度/设置)
  • 在 Magento 内核中,无法配置不同记录器的堆栈。