thereddot / monolog-extra-bundle
带有额外处理器和记录器以记录请求/响应的 Symfony 扩展包
Requires
- php: >=7.1.0
- symfony/config: ^3.4 || ^4.4 || ^5.0
- symfony/dependency-injection: ^3.4 || ^4.4 || ^5.0
- symfony/http-foundation: ^3.4 || ^4.4 || ^5.0
- symfony/http-kernel: ^3.4 || ^4.4 || ^5.0
- symfony/monolog-bundle: ^3.0
- symfony/property-access: ^3.4 || ^4.4 || ^5.0
- symfony/security-core: ^3.4 || ^4.4 || ^5.0
Requires (Dev)
- phpspec/phpspec: ^5.1|^6.0
Replaces
- hexanet/monolog-extra-bundle: v4.2.1
README
❗ 此包已被废弃,不再积极维护。
带有额外处理器和记录器以记录请求/响应/命令的 Symfony 扩展包。
安装
使用 Symfony Flex 的应用程序
打开命令行,进入您的项目目录并执行
$ composer require thereddot/monolog-extra-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载包
打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本
$ composer require thereddot/monolog-extra-bundle
此命令需要您全局安装 Composer,如 Composer 文档中的 安装章节 所述。
步骤 2:启用包
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的包列表中来启用该包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new TheRedDot\MonologExtraBundle\TheRedDotMonologExtraBundle(), ); // ... } // ... }
用法
处理器
此包提供几个处理器
- 用户
- 会话 ID
- 请求 ID
- 附加信息
用户
UserProcessor 在每个日志条目中添加有关当前用户的数据。
the_red_dot_monolog_extra: processor: user: true
默认提供程序 SymfonyUserProvider
返回
- 匿名,当没有用户登录时
- 当前登录用户的用户名
- cli
您可以自定义提供程序以将用户名替换为另一个属性
TheRedDot\MonologExtraBundle\Provider\User\SymfonyUserProvider: arguments: $className: App\Entity\User $propertyName: myCustomProperty
您可以创建自己的提供程序,通过创建一个实现 TheRedDot\MonologExtraBundle\Provider\User\UserProviderInterface 的服务来实现。
the_red_dot_monolog_extra: provider: user: your_own_provider_service_id
会话 ID
在每个日志条目中添加会话 ID。
the_red_dot_monolog_extra: session_start: false processor: session_id: true
您可以通过创建一个实现 TheRedDot\MonologExtraBundle\Provider\Session\SessionIdProviderInterface 的服务来创建自己的提供程序。
the_red_dot_monolog_extra: provider: session_id: your_own_provider_service_id
请求 ID
在每个日志条目中添加请求 ID。
the_red_dot_monolog_extra: processor: request_id: true
此包包含 2 个提供程序
- UniqidProvider(默认):使用
uniqid
- ServerRequestIdProvider:从
$_SERVER
获取- 您需要传递
$_SERVER
字段的名称,例如 Apache 的 mod_unique_id 的示例:UNIQUE_ID
。
- 您需要传递
您可以通过创建一个实现 TheRedDot\MonologExtraBundle\Provider\RequestId\RequestIdProviderInterface 的服务来创建自己的提供程序。
the_red_dot_monolog_extra: provider: request_id: your_own_provider_service_id
附加信息
在每个日志条目中添加自定义数据。
the_red_dot_monolog_extra: processor: additions: type: symfony application: the best symfony application locale: "%locale%" environment: "%kernel.environment%"
记录器
根据请求
创建带有请求数据的日志条目。
根据响应
创建带有响应数据的日志条目。
根据控制台命令
在任何命令执行前创建日志条目。
根据控制台异常
在控制台发生异常时创建日志条目。
将请求ID添加到响应中
在响应头中添加上一个处理器的请求ID。
HTTP/1.1 302 Found
X-Request-ID: 57c5f5e842b10
配置参考
配置参考,以获取可用的配置选项。
致谢
源自 Hexanet/MonologExtraBundle.
许可证
MonologExtraBundle 使用 MIT许可证 许可。