简介
在实际开发中,我们发现在 Debug 的时候经常需要查询日志。而传统的方式是需要 SSH 到生产环境,然后使用 cat,tail 和 grep 等命令查询日志,且无法进行日志的统计和分析,深度挖掘这些日志的价值。
本片文章的侧重点在于优雅的让 Laravel 直接将日志写入 Elasticsearch,当然你也可以选择使用Filebeat 采集 Laravel 的本地日志。
安装Elasticsearch依赖包
composer require elasticsearch/elasticsearch
.env环境变量配置
# 修改日志存在通道
LOG_CHANNEL=elasticsearch
# 添加 elasticsearch 日志存储配置
ELASTIC_HOST=http://elasticsearch:9200 # elasticsearch 服务地址
ELASTIC_LOGS_INDEX=shopem-store-es-logs # elasticsearch 日志存储索引名
添加日志通道
在config/logging.php
文件里的 channels
里添加如下配置
'elasticsearch' => [
'driver' => 'monolog',
'level' => 'debug',
'handler' => MonologHandlerElasticsearchHandler::class,
'formatter' => MonologFormatterElasticsearchFormatter::class,
'formatter_with' => [
'index' => env('ELASTIC_LOGS_INDEX'),
'type' => '_doc',
],
'handler_with' => [
'client' => ElasticsearchClientBuilder::create()->setHosts([env('ELASTIC_HOST')])->build(),
],
],
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。