Package Data | |
---|---|
Maintainer Username: | dweller |
Maintainer Contact: | devon@tokenly.com (Devon Weller) |
Package Create Date: | 2017-06-09 |
Package Last Update: | 2020-01-21 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-10-25 15:02:30 |
Package Statistics | |
---|---|
Total Downloads: | 17,398 |
Monthly Downloads: | 79 |
Daily Downloads: | 0 |
Total Stars: | 2 |
Total Watchers: | 4 |
Total Forks: | 1 |
Total Open Issues: | 0 |
Sends application log messages and events to a fluentd log shipper.
composer require tokenly/fluentd-logger
Add the following to the providers
array in your application config:
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
Normal log events are sent to fluentd using standard Laravel logging functions
Illuminate\Support\Facades\Log::info("hello world");
To measure an event, use fluent_measure($event, $data=[], $tags=null);
fluent_measure('widget.created', ['widgets' => 4], ['username' => 'leroy']);
$data should contain numeric data. Think of $tags as additional indexes for that data. A timestamp is included by default.
$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']);