hardtyz / yii2-log
许多Yii2日志目标
0.0.5
2018-08-07 11:44 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: 2.0.*
- yiisoft/yii2-composer: 2.0.*
Requires (Dev)
- codeception/codeception: 2.0.*
- yiisoft/yii2-elasticsearch: 2.0.*
- yiisoft/yii2-redis: 2.0.*
This package is auto-updated.
Last update: 2024-09-22 01:06:15 UTC
README
不同的Yii2日志传输方式
现在可用
- ElasticsearchTarget
- LogstashFileTarget
- LogstashTarget
- RedisTarget
安装
安装此扩展的首选方式是通过composer。
并将以下行添加到composer.json
"repositories": [
{
"url": "https://bitbucket.org/HardTYZ/yii2-log",
"type": "git"
}
]
并将行添加到composer.json
的require部分
"hardtyz/yii2-log": "*"
使用方法
常见属性
$emergencyLogFile
,默认@app/logs/logService.log
Elasticsearch、Redis和Logstash是外部服务,因此如果它们宕机,我们的日志必须存储在文件中。为此,ElasticsearchTarget、LogstashTarget、RedisTarget都有$emergencyLogFile
选项。它是日志服务宕机时写入文件的别名。
ElasticsearchTarget
将日志存储在Elasticsearch中。所有日志都转换为JSON,因此您可以通过kibana简单地查看它们。
扩展yii\log\Target,更多选项请参见此处
示例配置
....
'components' => [
'log' => [
'targets' => [
['class' => 'hardtyz\\log\\ElasticsearchTarget'],
....
属性
index
,默认 'yii' - Elasticsearch索引名称。type
,默认 'log' - Elasticsearch索引类型。componentName
- yii redis组件的名称。
LogstashFileTarget
扩展yii\log\FileTarget,更多选项请参见此处
示例Yii配置
....
'components' => [
'log' => [
'targets' => [
['class' => 'hardtyz\\log\\LogstashFileTarget'],
....
示例Logstash配置(当前版本 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
扩展yii\log\Target,更多选项请参见此处
示例Yii配置
....
'components' => [
'log' => [
'targets' => [
['class' => 'hardtyz\\log\\LogstashTarget'],
// Or UDP.
[
'class' => 'hardtyz\\log\\LogstashTarget',
'dsn' => 'udp://:3333'
],
// Or unix socket file.
[
'class' => 'hardtyz\\log\\LogstashTarget',
'dsn' => 'unix:///path/to/logstash.sock'
],
....
示例Logstash配置(当前版本 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 => {}
}
属性
dsn
,默认tcp://:3333
- 访问logstash服务的URL。允许的方案:tcp、udp、unix - 用于Unix套接字文件。index
,默认logstash
- 访问logstash服务的索引custom
,默认[]
- 发送到logstash的自定义字段数组
RedisTarget
扩展yii\log\Target,更多选项请参见此处
示例Yii配置
....
'components' => [
'log' => [
'targets' => [
['class' => 'hardtyz\\log\\RedisTarget'],
....
示例Logstash配置(当前版本 1.3.3)
input {
redis {
type => "yii_log"
key => "yii_log"
codec => "json"
}
}
filter {
# ...
}
output {
stdout => {}
}
属性
key
,默认yii_log
- Redis列表键。componentName
- yii redis组件的名称。
测试
从IDE运行测试(例如PhpStorm的示例)
- 选择运行/调试配置 -> 编辑配置
- 选择添加新配置 -> PHP脚本
- 类型
- 文件: /path/to/yii-phar/.test.php
- 运行参数: run --coverage --html
- OK
从控制台运行测试
make test
感谢
@achretien @Archy812 @xt99 @index0h