lexik/monolog-browser-bundle

这个Symfony2扩展包提供了Monolog的Doctrine DBAL处理器和用于显示日志条目的Web用户界面

v1.0.2 2016-09-27 09:41 UTC

This package is not auto-updated.

Last update: 2024-09-11 11:09:57 UTC


README

Build Status Latest Stable Version SensioLabsInsight

此扩展包已弃用

此Symfony2扩展包提供了一个Doctrine DBAL处理器给Monolog,以及用于显示日志条目的Web用户界面。您可以看到下面的截图,您可以列出、筛选和分页日志

Log entries listing Log entry show

由于此扩展包在每次日志记录时都会查询数据库,因此它适用于小型和中型项目,但如果您有数十亿条日志,请考虑使用特定的日志服务器,如sentryairbrake等。

要求

  • 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连接

注意:我们将loggingprofiling选项设置为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提供抽象处理程序和连接器
  • 编写测试