upaid / elk
ELK Logger for Laravel
1.0.2
2019-11-19 13:43 UTC
Requires
- laravel/framework: 5.8.*
This package is not auto-updated.
Last update: 2024-09-18 12:36:15 UTC
README
Laravel日志格式化插件,用于ELK。
根据Spring Cloud Sleuth使用的格式支持跟踪/跨度ID。还添加了一些额外的字段。
安装
通过Composer
$ composer require upaid/elk
发布配置
运行以下命令以发布包配置文件
php artisan vendor:publish --provider="Upaid\Elk\Providers\ElkServiceProvider"
添加到.env文件中的密钥
ELK_SERVICE_NAME='app name'
ELK_BANKNAME='bank name'
ELK_CHANNEL='channel for recognizing applications by logstash'
或覆盖配置文件
<?php
return [
'logstash' => [
'serviceName' => 'app name',
'bankName' => 'bank name',
'channel' => 'channel for recognizing applications by logstash',
'showLogType' => true,
]
];
更改默认日志字段及其顺序
要更改默认日志字段或其顺序,请覆盖配置文件中的fields
属性
<?php
return [
'logstash' => [
'serviceName' => 'app name',
'bankName' => 'bank name',
'channel' => 'channel for recognizing applications by logstash',
'fields' => [
'timestamp',
'severity' => 'level_name',
'msg' => 'message',
'span',
'class' => 'class',
'exception' => 'exception',
'trace',
'parent',
'bank.name',
'environment',
'service',
'channel',
'context' => [
'user.phone',
'user.email',
'card.id',
],
'extra',
'log_type',
],
'showLogType' => true,
]
];
隐藏敏感数据
为了从日志文件内容中删除敏感数据,您可以向配置文件中添加mask.fields
属性并指定应隐藏的字段值。字段值将被替换为mask.replacement
属性。也可以根据在mask.patterns
中指定的模式隐藏值。示例表示替换信用卡号。
<?php
return [
'mask' => [
'replacement' => '[MASKED]',
'fields' => [
'password',
'new_password',
'password_confirmation',
'card_no',
'cvc',
],
'patterns' => [
'/^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/',
],
]
];
添加日志通道
将elk通道添加到config/logging.php配置文件中的channels数组中,如下所示
'channels' => [ 'elk' => [ 'driver' => 'custom', 'via' => \Upaid\Elk\Services\Logging\CreateCustomLogger::class, 'log_name' => 'global' ], ...
在同一个文件中将默认日志通道设置为elk
return [ 'default' => 'elk', ...
或者当您想使用堆栈通道(默认通道是'stack')时,将elk添加到堆栈通道
'channels' => [ ... 'stack' => [ 'driver' => 'stack', 'channels' => ['elk'], ], ...
使用方法
Laravel标准日志记录(到global.json)
Log::debug('An informational message.');
将日志记录到自定义日志文件名(在这种情况下为testlog.json)
use \Upaid\Elk\Services\Logging\Logger; $logger = new Logger('testlog'); $logger->info('Hello World!');
更改日志
请参阅变更日志以获取有关最近更改的更多信息。
安全
如果您发现任何与安全相关的问题,请通过作者邮箱联系,而不是使用问题跟踪器。