norsys/logs-bundle

在数据库中写入日志,并通过浏览器读取日志

安装: 114

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 9

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2018-07-17 11:52 UTC

This package is auto-updated.

Last update: 2024-08-28 09:53:01 UTC


README

Package version Total Downloads Build Status Scrutinizer Coverage Scrutinizer Code Quality License

SensioLabsInsight

此项目是一个用于在数据库中写入日志并使用浏览器读取日志的包

安装

步骤 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 连接

注意:我们将 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

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 许可证 许可。