norsys / logs-bundle
在数据库中写入日志,并通过浏览器读取日志
Requires
- php: >=7.0.0
- composer/composer: ^1.4
- doctrine/dbal: *
- knplabs/knp-paginator-bundle: ~2.5.3
- monolog/monolog: *
- sensio/distribution-bundle: ^5.0
- symfony/symfony: ~3.4
Requires (Dev)
- atoum/atoum: ~3.0
- atoum/bdd-extension: ~2.1
- atoum/stubs: ~2.5
- norsys/php-coding-standard: ~1.0
- norsys/rothenberg: dev-master
- squizlabs/php_codesniffer: ^2.6
This package is auto-updated.
Last update: 2024-08-28 09:53:01 UTC
README
此项目是一个用于在数据库中写入日志并使用浏览器读取日志的包
安装
步骤 1:下载包
打开命令行控制台,进入您的项目目录,然后执行以下命令以下载此包的最新稳定版本
$ composer require norsys/logs-bundle "dev-master"
此命令需要您已全局安装 Composer,如 Composer 文档的 安装章节 中所述。
步骤 2:启用包
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的包列表中来启用此包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), new Norsys\LogsBundle\NorsysLogsBundle(), // ... ); // ... } // ... }
步骤 3:配置
首先,您需要配置用于处理程序的 Doctrine DBAL 连接。您有两种方法可以这样做
使用现有的 Doctrine 连接
注意:我们将 logging
和 profiling
选项设置为 false,以避免 DI 循环引用。
# app/config/config.yml doctrine: dbal: connections: default: ... monolog: driver: pdo_sqlite dbname: monolog path: %kernel.root_dir%/cache/monolog2.db charset: UTF8 logging: false profiling: false norsys_logs: doctrine: connection_name: monolog
为包创建自定义的 Doctrine 连接
# app/config/config.yml norsys_logs: doctrine: connection: driver: pdo_sqlite driverClass: ~ pdo: ~ dbname: monolog host: localhost port: ~ user: root password: ~ charset: UTF8 path: %kernel.root_dir%/db/monolog.db # The filesystem path to the database file for SQLite memory: ~ # True if the SQLite database should be in-memory (non-persistent) unix_socket: ~ # The unix socket to use for MySQL
有关更多详细信息,请参阅 Doctrine DBAL 连接配置。
可选地,您可以覆盖模式表名称(默认为 monolog_entries
)
# app/config/config.yml norsys_logs: doctrine: table_name: monolog_entries
现在您的数据库已配置,您可以通过运行以下命令生成日志条目表的模式
./app/console norsys:logs:schema-create
# you should see as result:
# Created table monolog_entries for Doctrine Monolog connection
然后,您可以配置 Monolog 以使用 Doctrine DBAL 处理程序
# app/config/config_prod.yml # or any env monolog: handlers: main: type: fingers_crossed # or buffer level: error handler: norsys_logs app: type: buffer action_level: info channels: app handler: norsys_logs deprecation: type: buffer action_level: warning channels: deprecation handler: norsys_logs norsys_logs: type: service id: norsys_logs.handler.doctrine_dbal
现在您已启用和配置了处理程序,您可能想要显示日志条目,只需导入路由文件即可
# app/config/routing.yml norsys_logs: resource: "@NorsysLogsBundle/Resources/config/routing.xml" prefix: /admin/monolog
翻译
如果您希望使用此包中提供的默认翻译,请确保您已在其配置中启用了翻译器
# app/config/config.yml framework: translator: ~
覆盖默认布局
您可以使用 base_layout
选项覆盖包的默认布局
# app/config/config.yml norsys_logs: base_layout: "NorsysLogsBundle::layout.html.twig"
或者,以 Symfony 方式创建模板在 app/Resources/NorsysLogsBundle/views/layout.html.twig
上,就相当简单了。
使用服务标签实现记录器
此包提供了一个编译器传递助手,通过结合使用 LoggerAwareTrait,简化了通过服务标签的记录器集成。
首先,在您的类中使用 trait
<?php # src/AppBundle/Acme/Demo.php namespace AppBundle\Acme; // ... use Norsys\LogsBundle\LoggerBehaviorTrait; class Demo { // ... use LoggerBehaviorTrait; // ... }
然后更新您的服务容器配置中的类设置
# app/config/services.yml services: # ... app.acme.demo: class: AppBundle\Acme\Demo tags: - { name: logger.aware } # ...
就是这样,现在您的记录器已准备好使用!
<?php # src/AppBundle/Acme/Demo.php namespace AppBundle\Acme; // ... use Norsys\LogsBundle\LoggerBehaviorTrait; class Demo { // ... use LoggerBehaviorTrait; // ... public function doSomething() { $this->getLogger()->debug('Method AppBundle\Acme::doSomething() was called'); // ... } }
致谢
由 Norsys 开发,用 ❤️
许可协议
此项目受 MIT 许可证 许可。