Download the PHP package shadowbane/laravel-datadog-logger without Composer
On this page you can find all versions of the php package shadowbane/laravel-datadog-logger. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download shadowbane/laravel-datadog-logger
More information about shadowbane/laravel-datadog-logger
Files in shadowbane/laravel-datadog-logger
Package laravel-datadog-logger
Short Description Custom laravel monolog logger for datadog logs management, both api and agent ways
License MIT
Homepage https://github.com/shadowbane/laravel-datadog-logger
Informations about the package laravel-datadog-logger
Laravel DataDog Logger
A custom Laravel Monolog logger for sending logs to DataDog via their HTTP API.
Features
- Send Laravel logs directly to DataDog via HTTP API
- Automatic exception tracking with stack traces
- Custom log context support
- Configurable log levels and endpoints
- Error reporting for failed API requests
- Environment-based tagging
Requirements
- PHP ^8.1 || ^8.2 || ^8.3 || ^8.4
- Laravel 10.x or higher
- ext-json
- ext-curl
- Guzzle ^6.0 || ^7.0
- Monolog ^3.0
Installation
Install the package via Composer:
The service provider will be automatically registered.
Configuration
Environment Variables
Add the following to your .env file:
Configuration Options
| Variable | Description | Default |
|---|---|---|
DATADOG_API_KEY |
Your DataDog API key (required) | - |
DATADOG_LEVEL |
Minimum log level (debug, info, notice, warning, error, critical, alert, emergency) | warning |
DATADOG_BUBBLE |
Whether logs should bubble to other handlers | true |
DATADOG_ENVIRONMENT |
Environment tag for DataDog | Laravel's app()->environment() |
DATADOG_API_ENDPOINT |
DataDog logs API endpoint | https://http-intake.logs.datadoghq.com/api/v2/logs |
DATADOG_ERROR_LOG_CHANNEL |
Laravel log channel for logging DataDog API failures | false |
Laravel Logging Configuration
The package automatically merges the datadog-api channel into your logging configuration. You can use it in your config/logging.php:
Usage
Basic Logging
Use the datadog-api channel to send logs to DataDog:
Exception Logging
When logging exceptions, pass the exception in the context array with the key exception:
The logger will automatically extract:
- Exception class name (becomes the message)
- Error code (
error.kind) - Error message (
error.message) - Stack trace (
error.stack)
Log Context
All context data (except exception, message, and messages) is sent to DataDog as custom attributes:
This will create a log in DataDog with custom attributes: memory_used, memory_limit, and server.
Testing
Test your DataDog integration using the included Artisan command:
This command sends a test exception to DataDog with sample context data.
Log Level Mapping
Laravel log levels are mapped to DataDog status levels:
| Laravel Level | DataDog Status |
|---|---|
| debug, info | info |
| notice, warning | warn |
| error, critical, alert, emergency | error |
Error Handling
If the DataDog API request fails, you can configure a fallback Laravel log channel to capture these errors:
Failed API requests will be logged to this channel with the Guzzle exception details.
DataDog Log Structure
Logs sent to DataDog include the following fields:
ddsource: Always set tolaravelddtags: Environment tag (e.g.,env:production)hostname: Server hostnamemessage: Formatted log message (or exception class name)service: Your Laravel application name (fromconfig('app.name'))status: Mapped log level (info, warn, error)timestamp: Log timestamp in milliseconds- Custom attributes from log context
For exceptions:
error.kind: Exception codeerror.message: Exception messageerror.stack: Exception stack trace
Development
Static Analysis
Run PHPStan for static analysis:
License
This package is open-sourced software licensed under the MIT license.
Credits
Support
If you discover any issues, please open an issue on the GitHub repository.
All versions of laravel-datadog-logger with dependencies
ext-json Version *
guzzlehttp/guzzle Version ^6.0 || ^7.0
monolog/monolog Version ^3.0