Laravel Gelf Logger 使用教程
项目介绍
Laravel-gelf-logger
是一个用于将日志发送到兼容 GELF(Graylog Extended Log Format)后端的 Laravel 包。它是 bzikarsky/gelf-php
包的 Laravel 封装,利用了 Laravel 5.6 中引入的新自定义日志通道。
项目快速启动
安装
通过 Composer 安装:
composer require hedii/laravel-gelf-logger
配置
编辑 config/logging.php
文件,添加新的 GELF 日志通道:
return [
'default' => env('LOG_CHANNEL', 'stack'),
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily', 'gelf'],
],
'gelf' => [
'driver' => 'custom',
'via' => \Hedii\LaravelGelfLogger\GelfLoggerFactory::class,
],
],
];
使用示例
在代码中使用 GELF 日志通道:
Log::notice('This is a test message', ['foo' => 'bar']);
或者使用日志助手:
logger('This is a test message', ['foo' => 'bar']);
应用案例和最佳实践
应用案例
假设你有一个 Laravel 项目,并且你希望将所有日志发送到 Graylog 服务器进行集中管理。通过使用 Laravel-gelf-logger
,你可以轻松实现这一目标。
最佳实践
- 配置多个日志通道:在
config/logging.php
中配置多个日志通道,例如daily
和gelf
,以便在本地开发环境中使用文件日志,在生产环境中使用 GELF 日志。 - 自定义处理器:使用自定义处理器来修改日志上下文中的字段,例如添加用户信息或请求 ID。
'gelf' => [
'driver' => 'custom',
'via' => \Hedii\LaravelGelfLogger\GelfLoggerFactory::class,
'processors' => [
\Hedii\LaravelGelfLogger\Processors\NullStringProcessor::class,
],
],
典型生态项目
Graylog
Graylog 是一个开源的日志管理平台,支持 GELF 格式。通过使用 Laravel-gelf-logger
,你可以将 Laravel 项目的日志发送到 Graylog 进行集中管理和分析。
bzikarsky/gelf-php
bzikarsky/gelf-php
是一个 PHP 库,用于发送 GELF 格式的日志消息。Laravel-gelf-logger
是基于这个库构建的 Laravel 封装。
Laravel
Laravel 是一个流行的 PHP 框架,提供了强大的日志功能。通过集成 Laravel-gelf-logger
,你可以进一步增强 Laravel 项目的日志管理能力。
通过本教程,你应该能够快速上手并使用 Laravel-gelf-logger
将日志发送到兼容 GELF 的后端,如 Graylog。希望这对你有所帮助!