yii2-log

Different Yii2 log transports

  • 所有者: index0h/yii2-log
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

yii2-log

Build Status Latest Stable Version Dependency Status Scrutinizer Quality Score Code Coverage Total Downloads License

Different Yii2 log transports

Now available

  • ElasticsearchTarget
  • LogstashFileTarget
  • LogstashTarget
  • RedisTarget

Installation

The preferred way to install this extension is through composer.

php composer.phar require --prefer-dist index0h/yii2-log "0.0.3"

or add line to require section of composer.json

"index0h/yii2-log": "0.0.3"

Usage

Common properties

  • $emergencyLogFile, default @app/logs/logService.log

Elasticsearch, Redis and Logstash - are external services, so if they down our logs must be stored in file.
For that ElasticsearchTarget, LogstashTarget, RedisTarget have option $emergencyLogFile. It's alias to
file where logs will be written on log service is down.

ElasticsearchTarget

Stores logs in elasticsearch. All logs transform to json, so you can simply watch them by kibana.

Extends yii\log\Target, more options see here

Example configuration
....
'components' => [
    'log' => [
        'targets' => [
            ['class' => 'index0h\\log\\ElasticsearchTarget'],
        ....
Properties
  • index, default 'yii' - Elasticsearch index name.
  • type, default 'log' - Elasticsearch index type.
  • componentName - Name of yii redis component.

LogstashFileTarget

Extends yii\log\FileTarget, more options see here

Example Yii configuration
....
'components' => [
    'log' => [
        'targets' => [
            ['class' => 'index0h\\log\\LogstashFileTarget'],
        ....
Example Logstash configuration (current version 1.3.3)
input {
  file {
    type => "yii_log"
    path => [ "path/to/yii/logs/*.log*" ]
    start_position => "end"
    stat_interval => 1
    discover_interval => 30
    codec => "json"
  }
}

filter {
  # ...
}

output {
  stdout => {}
}

LogstashTarget

Extends yii\log\Target, more options see here

Example Yii configuration
....
'components' => [
    'log' => [
        'targets' => [
            ['class' => 'index0h\\log\\LogstashTarget'],
            // Or UDP.
            [
                'class' => 'index0h\\log\\LogstashTarget',
                'dsn' => 'udp://localhost:3333'
            ],
            // Or unix socket file.
            [
                'class' => 'index0h\\log\\LogstashTarget',
                'dsn' => 'unix:///path/to/logstash.sock'
            ],
        ....
Example Logstash configuration (current version 1.3.3)
input {
  tcp {
    type => "yii_log"
    port => 3333
    codec => "json"
  }
  # Or UDP.
  udp {
    type => "yii_log"
    port => 3333
    codec => "json"
  }
  # Or unix socket file.
  unix {
    type => "yii_log"
    path => "path/to/logstash.sock"
    codec => "json"
  }
}

filter {
  # ...
}

output {
  stdout => {}
}
Properties
  • dsn, default tcp://localhost:3333 - URL to logstash service. Allowed schemas:
    tcp, udp, unix - for unix sock files.

RedisTarget

Extends yii\log\Target, more options see here

Example Yii configuration
....
'components' => [
    'log' => [
        'targets' => [
            ['class' => 'index0h\\log\\RedisTarget'],
        ....
Example Logstash configuration (current version 1.3.3)
input {
  redis {
    type => "yii_log"
    key => "yii_log"
    codec => "json"
  }
}

filter {
  # ...
}

output {
  stdout => {}
}
Properties
  • key, default yii_log - Redis list key.
  • componentName - Name of yii redis component.

Testing

Run tests from IDE (example for PhpStorm)

  • Select Run/Debug Configuration -> Edit Configurations
  • Select Add New Configuration -> PHP Script
  • Type:
    • File: /path/to/yii-phar/.test.php
    • Arguments run: run --coverage --html
  • OK

Run tests from console

make test

Thanks to

@achretien
@Archy812
@xt99

主要指标

概览
名称与所有者index0h/yii2-log
主编程语言PHP
编程语言PHP (语言数: 4)
平台
许可证MIT License
所有者活动
创建于2014-02-10 19:50:44
推送于2015-05-24 22:36:47
最后一次提交2015-05-25 01:32:44
发布数3
最新版本名称0.0.3 (发布于 )
第一版名称0.0.1 (发布于 )
用户参与
星数49
关注者数6
派生数13
提交数41
已启用问题?
问题数21
打开的问题数4
拉请求数1
打开的拉请求数0
关闭的拉请求数1
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?