lexik / monolog-browser-bundle
这个Symfony2扩展包提供了Monolog的Doctrine DBAL处理器和用于显示日志条目的Web用户界面
Requires
- php: >=5.3.2
- knplabs/knp-paginator-bundle: >=2.3
- symfony/framework-bundle: ~2.1
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-11 11:09:57 UTC
README
此扩展包已弃用
此Symfony2扩展包提供了一个Doctrine DBAL处理器给Monolog,以及用于显示日志条目的Web用户界面。您可以看到下面的截图,您可以列出、筛选和分页日志
由于此扩展包在每次日志记录时都会查询数据库,因此它适用于小型和中型项目,但如果您有数十亿条日志,请考虑使用特定的日志服务器,如sentry、airbrake等。
要求
- Symfony 2.1+
- KnpLabs/KnpPaginatorBundle
安装
使用Composer安装
... "require": { ... "lexik/monolog-browser-bundle": "~1.0", ... }, ...
接下来,确保在您的app/AppKernel.php
文件中启用这些扩展包
public function registerBundles() { return array( // ... new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), new Lexik\Bundle\MonologBrowserBundle\LexikMonologBrowserBundle(), // ... ); }
配置
首先,您需要配置要用于处理器的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 lexik_monolog_browser: doctrine: connection_name: monolog
创建用于扩展包的定制Doctrine连接
# app/config/config.yml lexik_monolog_browser: 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 lexik_monolog_browser: doctrine: table_name: monolog_entries
现在,您可以通过运行以下命令为您的日志条目表生成模式
./app/console lexik:monolog-browser: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: lexik_monolog_browser app: type: buffer action_level: info channels: app handler: lexik_monolog_browser deprecation: type: buffer action_level: warning channels: deprecation handler: lexik_monolog_browser lexik_monolog_browser: type: service id: lexik_monolog_browser.handler.doctrine_dbal
现在您已启用并配置了处理器,您可能想显示日志条目,只需导入路由文件
# app/config/routing.yml lexik_monolog_browser: resource: "@LexikMonologBrowserBundle/Resources/config/routing.xml" prefix: /admin/monolog
翻译
如果您希望使用此扩展包提供的默认翻译,请确保您已在配置中启用了翻译器
# app/config/config.yml framework: translator: ~
覆盖默认布局
您可以使用base_layout
选项覆盖扩展包的默认布局
# app/config/config.yml lexik_monolog_browser: base_layout: "LexikMonologBrowserBundle::layout.html.twig"
或者使用Symfony的方式,在app/Resources/LexikMonologBrowserBundle/views/layout.html.twig
上创建一个模板。
更新扩展包
在每个扩展包更新时,请注意潜在的架构更新,因为Monolog条目表与您的其他Doctrine实体或模型脱节,您必须手动更新架构。
此扩展包附带了一个schema-update
命令,但在某些情况下,例如在重命名列时,默认行为可能并不完美,您可能需要查看Doctrine迁移(您可以在PR #2中找到一个示例)。
您可以执行以下命令以查看SQL差异并执行架构更新
./app/console lexik:monolog-browser:schema-update
待办事项
- 配置处理器以推送到处理程序
- 为Doctrine和浏览另一个如Elasticsearch提供抽象处理程序和连接器
- 编写测试