PHPackages                             jordanpartridge/laravel-say-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. jordanpartridge/laravel-say-logger

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

jordanpartridge/laravel-say-logger
==================================

A Laravel package that speaks your log messages using macOS text-to-speech with different voices for different log levels

v1.0.0(10mo ago)04MITPHPPHP ^8.1

Since Jul 11Pushed 10mo agoCompare

[ Source](https://github.com/jordanpartridge/laravel-say-logger)[ Packagist](https://packagist.org/packages/jordanpartridge/laravel-say-logger)[ RSS](/packages/jordanpartridge-laravel-say-logger/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (5)Versions (3)Used By (0)

🔊 Laravel Say Logger
====================

[](#-laravel-say-logger)

[![Latest Version](https://camo.githubusercontent.com/0007ae351510bfa37d791bb2506e2a87eaef93722e922273b6ddfc2f89a9c2fb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f7264616e7061727472696467652f6c61726176656c2d7361792d6c6f676765722e737667)](https://packagist.org/packages/jordanpartridge/laravel-say-logger)[![License](https://camo.githubusercontent.com/e3f4a9278b9a27129af2c0fca3890e7cd0d83ff83bf4ef4c4c49d477cfa95c60/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6f7264616e7061727472696467652f6c61726176656c2d7361792d6c6f676765722e737667)](https://packagist.org/packages/jordanpartridge/laravel-say-logger)[![PHP Version](https://camo.githubusercontent.com/2083985c1a412081db9a9ec4d8462b72f63e736ef94fad559da33f7cc3de6b04/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6a6f7264616e7061727472696467652f6c61726176656c2d7361792d6c6f676765722e737667)](https://packagist.org/packages/jordanpartridge/laravel-say-logger)

> **Never miss another error again!** 🎯

Laravel Say Logger brings **audio feedback** to your Laravel application by speaking your log messages using macOS text-to-speech. Different voices for different log levels mean you can **hear** the severity of issues without constantly checking log files.

Perfect for development environments where you want immediate audio feedback about your application's health.

✨ Features
----------

[](#-features)

- 🎤 **Text-to-Speech Integration** - Uses macOS `say` command
- 🎭 **Voice Differentiation** - Different voices for different log levels
- ⚡ **Async Processing** - Non-blocking, won't slow down your app
- 🔧 **Easy Configuration** - Simple config file setup
- 🎛️ **Toggle Control** - Enable/disable via environment variable
- 🧹 **Message Cleanup** - Strips HTML tags and normalizes whitespace
- 🛡️ **Error Handling** - Graceful fallback if speech fails

🚀 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require jordanpartridge/laravel-say-logger
```

Publish the configuration file:

```
php artisan vendor:publish --provider="JordanPartridge\LaravelSayLogger\LaravelSayLoggerServiceProvider" --tag="config"
```

⚙️ Configuration
----------------

[](#️-configuration)

Add the `say` channel to your `config/logging.php`:

```
'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'say'], // Add 'say' here
    ],

    // Add the say channel
    'say' => [
        'driver' => 'say',
    ],
],
```

Configure voices in `config/say-logger.php`:

```
return [
    'enabled' => env('SAY_LOGGER_ENABLED', true),
    'voices' => [
        'debug' => 'Alex',
        'info' => 'Victoria',
        'notice' => 'Fred',
        'warning' => 'Kathy',
        'error' => 'Veena',
        'critical' => 'Moira',
        'alert' => 'Tessa',
        'emergency' => 'Kyoko',
    ],
];
```

### 🎵 Fun Voice Options

[](#-fun-voice-options)

Want to make debugging more entertaining? Try these musical and novelty voices:

```
'voices' => [
    'debug' => 'Bubbles',      // Fun bubbly voice
    'info' => 'Good News',     // Upbeat singing
    'notice' => 'Bells',       // Musical bells
    'warning' => 'Junior',     // Kid voice
    'error' => 'Cellos',       // Singing cellos
    'critical' => 'Bad News',  // Ominous singing
    'alert' => 'Trinoids',     // Alien voice
    'emergency' => 'Organ',    // Dramatic organ
],
```

**Available Voice Categories:**

- **Musical**: `Cellos`, `Organ`, `Bells`, `Good News`, `Bad News`
- **Novelty**: `Boing`, `Bubbles`, `Trinoids`, `Bahh`, `Whisper`
- **Character**: `Junior`, `Princess`, `Albert`, `Kathy`
- **Standard**: `Alex`, `Victoria`, `Daniel`, `Samantha`

See all available voices: `say -v '?'`

Test a voice: `say -v Cellos "Your error message here"`

```

## 🎭 Voice Examples

| Log Level | Voice | Character |
|-----------|-------|-----------|
| `debug` | Alex | Calm male voice |
| `info` | Victoria | Pleasant female voice |
| `warning` | Kathy | Concerned female voice |
| `error` | Veena | Urgent female voice |
| `critical` | Moira | Serious female voice |
| `emergency` | Kyoko | Alert female voice |

## 🎯 Usage

Once configured, your log messages will be automatically spoken:

```php
// These will be spoken by different voices
Log::debug('Cache cleared successfully');          // Alex
Log::info('User logged in successfully');          // Victoria
Log::warning('Low disk space detected');           // Kathy
Log::error('Database connection failed');          // Veena
Log::critical('Payment processor is down');        // Moira
Log::emergency('Security breach detected');        // Kyoko

```

### Real-World Examples

[](#real-world-examples)

```
// Database errors
try {
    DB::connection()->getPdo();
} catch (Exception $e) {
    Log::error('Database connection failed: ' . $e->getMessage());
    // 🔊 Veena: "Database connection failed: SQLSTATE[HY000]..."
}

// API failures
if ($response->failed()) {
    Log::warning('Payment API is responding slowly');
    // 🔊 Kathy: "Payment API is responding slowly"
}

// System monitoring
if (disk_free_space('/') < 1000000) {
    Log::critical('Disk space critically low');
    // 🔊 Moira: "Disk space critically low"
}
```

🎛️ Environment Control
----------------------

[](#️-environment-control)

Control the package via environment variables:

```
# Enable/disable speech
SAY_LOGGER_ENABLED=true

# Or disable for production
SAY_LOGGER_ENABLED=false
```

🔧 Advanced Configuration
------------------------

[](#-advanced-configuration)

### Custom Voice Mapping

[](#custom-voice-mapping)

You can customize which voice speaks for each log level:

```
'voices' => [
    'error' => 'Samantha',      // Use Samantha for errors
    'warning' => 'Daniel',      // Use Daniel for warnings
    'critical' => 'Fiona',      // Use Fiona for critical
    // ... etc
],
```

### Available macOS Voices

[](#available-macos-voices)

Check available voices on your system:

```
say -v "?"
```

Popular voices include: Alex, Victoria, Samantha, Daniel, Fiona, Karen, Moira, Tessa, Veena, Kyoko.

🛡️ Error Handling
-----------------

[](#️-error-handling)

The package includes robust error handling:

- **Graceful Fallback** - If `say` command fails, logging continues normally
- **Empty Message Protection** - Won't attempt to speak empty messages
- **Process Isolation** - Speech failures won't affect your application

🎯 Use Cases
-----------

[](#-use-cases)

### Development Environment

[](#development-environment)

- **Immediate Error Feedback** - Hear problems as they happen
- **Hands-Free Debugging** - No need to constantly check logs
- **Severity Awareness** - Know how serious an issue is by the voice

### Demo Environments

[](#demo-environments)

- **Impressive Demonstrations** - Show clients real-time error handling
- **System Health Monitoring** - Audio feedback for system status

### Local Testing

[](#local-testing)

- **Test Result Feedback** - Hear when tests fail
- **Performance Monitoring** - Audio alerts for slow queries

📋 Requirements
--------------

[](#-requirements)

- **PHP**: ^8.1
- **Laravel**: ^10.0 || ^11.0
- **macOS**: Required for `say` command
- **Monolog**: ^3.0

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License
---------

[](#-license)

This package is open-sourced software licensed under the [MIT license](LICENSE).

🎉 Credits
---------

[](#-credits)

- **Jordan Partridge** - Creator and maintainer
- **Laravel Community** - For the amazing framework
- **Apple** - For the macOS `say` command

🔮 Future Ideas
--------------

[](#-future-ideas)

- Cross-platform support (Windows SAPI, Linux espeak)
- Rate limiting for repeated messages
- Custom message filtering
- Volume control per log level
- Slack/Discord integration
- Web interface for configuration

---

**Made with ❤️ by [Jordan Partridge](https://partridge.rocks)**

*Never miss another error again!* 🎯

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance54

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

306d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a6bb27de88a541a632427686306c8fc56366d72582f6a3316d20500efe7971f3?d=identicon)[conduit-ui](/maintainers/conduit-ui)

---

Top Contributors

[![jordanpartridge](https://avatars.githubusercontent.com/u/9040417?v=4)](https://github.com/jordanpartridge "jordanpartridge (3 commits)")

---

Tags

laravelloggingdebuggingaudiotext-to-speechmacossay

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jordanpartridge-laravel-say-logger/health.svg)

```
[![Health](https://phpackages.com/badges/jordanpartridge-laravel-say-logger/health.svg)](https://phpackages.com/packages/jordanpartridge-laravel-say-logger)
```

###  Alternatives

[honeybadger-io/honeybadger-laravel

Honeybadger Laravel integration

431.2M](/packages/honeybadger-io-honeybadger-laravel)[ytake/laravel-fluent-logger

fluent logger for laravel and lumen

63541.6k1](/packages/ytake-laravel-fluent-logger)[naoray/laravel-github-monolog

Log driver to store logs as github issues

10619.4k](/packages/naoray-laravel-github-monolog)[shaffe/laravel-mail-log-channel

A package to support logging via email in Laravel

1286.2k](/packages/shaffe-laravel-mail-log-channel)[moesif/moesif-laravel

Moesif Collection/Data Ingestion Middleware for Laravel

1065.8k](/packages/moesif-moesif-laravel)[kssadi/log-tracker

A powerful, intuitive, and efficient log viewer for Laravel applications.

264.8k](/packages/kssadi-log-tracker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
