unrelaxs / eslog-for-laravel
There is no license information available for the latest version (v0.1.4) of this package.
about laravel log to elasticsearch
v0.1.4
2020-04-03 03:36 UTC
Requires
This package is auto-updated.
Last update: 2025-03-01 00:30:47 UTC
README
The package has been tested in the following configuration:
- PHP version >=7.1.3, <=7.3
- Laravel Framework version >=5.8, <=6
- Elasticsearch version >=7
Installation
Use composer to install the package:
composer require unrelaxs/eslog-for-laravel
如果你的laravel框架版本 <= 5.4 or the package discovery
is disabled, add the following providers in config/app.php
:
'providers' => [ Laravel\Scout\ScoutServiceProvider::class, ScoutElastic\ScoutElasticServiceProvider::class, Unrelaxs\eslog\EslogServiceProvider::class, ]
Configuration
执行发布命令
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
php artisan vendor:publish --provider="ScoutElastic\ScoutElasticServiceProvider"
php artisan vendor:publish --provider="Unrelaxs\eslog\EslogServiceProvider"
在这个文件添加配置,指定elastic服务器的链接:端口 .evn
:
SCOUT_DRIVER=elastic #指定使用elastic
SCOUT_ELASTIC_HOST=http://域名:9200 #es服务器的链接
在这个文件修改 config/logging.php
:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['custom'], //这里至少指定 custom
'ignore_exceptions' => false,
],
'custom' => [
'driver' => 'custom',
'via' => Unrelaxs\Eslog\Log\Handler\CreateEsLogger::class, //指定创建es的logger扩展包
'url' => 'http://ip', es的链接
'port'=> '9200',
'index'=> 'laralog', //es的索引名
'toDB' => false, //是否写入数据库
]
创建一个索引配置文件:
php artisan make:index-configurator \\App\\Elasticsearch\\LogIndexConfigurator
此步骤可忽略,例如索引配置文件配置LogIndexConfigurator如下
protected $settings = [
'analysis' => [
'analyzer' => [
'default' => [
'type' => 'ik_max_word', //默认的分词器, 因为我独自安装了中文分析器,如何安装,请参考下面文献
]
]
]
];
执行命令 生成一个logModel指向一个索引:
php artisan unrelaxs:create-mapping "\App\Elasticsearch\LogIndexConfigurator"
执行命令向es服务器创建索引 :
php artisan elastic:create-index "\App\Elasticsearch\LogIndexConfigurator"
执行命令 把上面执行命令返回model 映射到es服务器:
php artisan elastic:update-mapping "\Unrelaxs\Eslog\Model\LogModel"
在客户端调用Log::info('你好啊');,如在routes/web.php中这样
Route::get('/', function () {
\Illuminate\Support\Facades\Log::info('成功加载'); //记录日志,将自动把数据推送到es服务器
return view('welcome');
});
去es服务器查看效果吧!