tokenly/fluentd-logger

Laravel 的 Fluentd 日志组件

v1.2.0 2018-03-09 20:55 UTC

This package is not auto-updated.

Last update: 2024-09-25 01:12:08 UTC


README

将应用程序日志消息和事件发送到 fluentd 日志传输器。

安装

通过 composer 添加包

composer require tokenly/fluentd-logger

与 Laravel 一起使用

添加服务提供者

将以下内容添加到您的应用程序配置中的 providers 数组

Tokenly\FluentdLogger\FluentdLoggerServiceProvider::class,

设置环境变量

APP_CODE=myapp
FLUENTD_ENABLED=true
FLUENTD_APPLOG_LEVEL=debug

# this makes the default Laravel monolog handler very quiet to not fill up the hard drive
APP_LOG_LEVEL=emergency

# for a local fluentd instance
FLUENTD_SOCKET=/tmp/fluentd.sock

# if using a remote fluentd server (or fluent bit)
# FLUENTD_HOST=127.0.0.1
# FLUENTD_PORT=5170

# if using fluent bit
# FLUENTD_USE_FLUENT_BIT=true

标准日志事件

正常日志事件使用标准的 Laravel 日志功能发送到 fluentd

Illuminate\Support\Facades\Log::info("hello world");

测量事件

要测量事件,请使用 fluent_measure($event, $data=[], $tags=null);

fluent_measure('widget.created', ['widgets' => 4], ['username' => 'leroy']);

$data 应包含数值数据。将 $tags 视为该数据的附加索引。默认情况下包括时间戳。

无 Laravel 使用

$fluent_logger = new \Tokenly\FluentdLogger\FluentLogger($host, $port);

# set a tag prefix
$app_code = 'myapp';
$environment = 'production';
$tag = 'applog.'.$app_code.'.'.$environment;

# set up monolog
$monolog->pushHandler(new \Tokenly\FluentdLogger\FluentMonologHandler($fluent_logger, $tag));

# set up fluent event logger for measurements
$measurement_logger = new \Tokenly\FluentdLogger\FluentEventLogger($fluent_logger, 'measure.'.$app_code.'.'.$environment);

# Or, instead of the above, set up fluent using fluent bit event logger for measurements
# $measurement_logger = new \Tokenly\FluentdLogger\FluentEventLogger($fluent_logger, 'measure.'.$app_code.'.'.$environment, [], new \Tokenly\FluentdLogger\Packer\FluentBitJsonPacker());


# use monolog
$monolog->info("hi world");

# use measurements
$measurement_logger->log('widget.created', ['widgets' => 4], ['username' => 'leroy']);