DebugView is a custom Monolog handler that sends log messages to the Windows DebugView utility using the OutputDebugStringA function from the Windows API.
- Integrates with Monolog for logging.
- Sends log messages directly to DebugView for real-time debugging on Windows systems.
- Lightweight and easy to use.
To install the package, use Composer:
composer require ascriver/debugviewHere is an example of how to use the DebugViewHandler in your project:
use Monolog\Logger;
use Ascriver\DebugViewHandler;
// Create a logger instance
$logger = new Logger('debug');
// Add the DebugViewHandler
$logger->pushHandler(new DebugViewHandler());
// Log a message
$logger->debug('This is a debug message');- PHP 8.1 or higher
- Windows operating system (required for OutputDebugStringA)
- FFI must be enabled in your PHP configuration (php.ini):
⚠️ If FFI is disabled or restricted (e.g., in some shared hosting environments), this handler will not function correctly.
This project uses PHPUnit for testing. To run the tests, first install the dependencies:
composer installThen, run the tests:
vendor/bin/phpunitsrc/: Contains the main source code, including theDebugViewHandlerclass.tests/: Contains unit tests for the project.composer.json: Defines the project dependencies and autoloading configuration.
The DebugViewHandlerTest includes a test for the write method, which uses PHP's FFI to mock the OutputDebugStringA function. Reflection is used to inject the mock into the handler.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Write tests for your changes.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.