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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?