Documentation

Getting Started

FluentLogs captures PHP errors from your WordPress site and sends them to your dashboard. Setup takes under a minute.

1

Create a project

Sign in to your dashboard and create a new project. Give it a name that matches your WordPress site (e.g., "acme.com production"). You'll get a project API key that looks like sk_live_....

2

Install the plugin

Download the Fluent Error Logger plugin and install it via Plugins → Add New → Upload Plugin in your WordPress admin.

Download fluent-error-logger.zip

Or install via WP-CLI:

wp plugin install https://wpcolorlab.s3.amazonaws.com/fluent-error-logger.zip --activate
3

Configure

Go to Settings → Error Logger in your WordPress admin. Enter your API Key, then hit Test Connection to verify.

Settings › Error Logger
API Key:       sk_live_xxxxxxxxxxxxxxxx
Min Level:     Warning  (errors + warnings)
Watch Scope:   Everything

[Save Settings]  [Test Connection]
✓ Connection successful! Test error sent.
4

You're done

Errors will appear in your FluentLogs dashboard within seconds. Set up notifications and workflows to get alerted the way you prefer.

Configuration reference

Endpoint URL

The plugin uses https://fluentlogs.com by default. Self-hosted users can override it in wp-config.php with FLUENT_ERROR_LOGGER_URL.

API Key

Your project's API key. Found in your project settings on the dashboard. Starts with sk_live_.

Minimum Level

Controls which severity levels get reported:

AllEverything including deprecated & notices InfoErrors, warnings, and notices WarningErrors and warnings (default) ErrorErrors only

Watch Scope

Everything monitors all sources. Selected only lets you pick specific plugins, themes, or WordPress core components to monitor.

Ignore Paths

One path per line. Errors from files matching these paths are silently dropped. Useful for noisy third-party plugins you can't fix.

Advanced: wp-config.php constants

You can optionally define the endpoint and API key as PHP constants. The endpoint is only configurable this way; the API key constant locks the admin field.

wp-config.php
define('FLUENT_ERROR_LOGGER_URL', 'https://fluentlogs.com');
define('FLUENT_ERROR_LOGGER_API_KEY', 'sk_live_xxx...');
// Optional: tag every event with your build/release
define('FLUENT_ERROR_LOGGER_RELEASE', 'v2024.04.17');
// Optional: override environment (auto-detected from WP_ENVIRONMENT_TYPE)
define('FLUENT_ERROR_LOGGER_ENV', 'staging');

This is useful for managing configuration via version control or environment-specific config files, without relying on the database.

Releases & Environments

FluentLogs auto-detects your environment and release tag so you can filter the dashboard by either.

Environment

Detected in this order: FLUENT_ERROR_LOGGER_ENV → WordPress's wp_get_environment_type()WP_DEBUG fallback. Common values: production, staging, development.

Release

Detected in this order:

  1. FLUENT_ERROR_LOGGER_RELEASE constant in wp-config.php
  2. SENTRY_RELEASE or WP_ENV_RELEASE if you already use those
  3. Short SHA from .git/HEAD (if your install is a git checkout)

PHP filters

Customize behavior without editing the plugin:

// Drop or modify events before they're sent
add_filter('fel_error_payload', function ($payload) {
    if (str_contains($payload['message'], 'cron lock')) return false;
    return $payload;
});

// Disable SSL verification (only for local dev)
add_filter('fel_ssl_verify', '__return_false');

// Override the cross-request dedupe window (default: 60s)
add_filter('fel_dedupe_window_seconds', function () { return 300; });

Workflows & Notifications

Workflows run actions when an error matches conditions. Configure them per project under the Workflows tab.

🐙

GitHub Issues

Auto-file or manually create issues in any repo. Connect via OAuth or install the GitHub App for org-wide access.

💬

Slack

Rich Block Kit messages with file, component, environment, and a button back to the dashboard.

🎮

Discord

Color-coded embeds (red/amber/blue) by severity, with file, environment, and occurrence count.

🔗

Webhooks

JSON POST to any URL with the full error payload. Use it to wire up custom integrations.