=== Debug Logger === Contributors: awoods Tags: psr-3, logs, logging, debug, monolog, dev, development Requires at least: 5.7 Tested up to: 5.7 Requires PHP: 7.4 Stable tag: 0.3.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Provide a PSR-3 compatible logger for WordPress core that writes to the debug.log == Description == As PHP moves forward, so must WordPress. This plugin helps WordPress use the tools of modern PHP. Monolog — PHP's most popular logging package — is a composer package. Since WordPress doesn't currently have a universal way to support composer, this WordPress plugin is meant to start bridging the gap. This logger is [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) compliant, a PHP standard which Monolog also uses. == Installation == This section describes how to install the plugin and get it working. 1. Upload the `wp-debug-logger` folder to the `/wp-content/plugins/` directory 1. Activate the plugin through the 'Plugins' menu in WordPress 1. Enable debugging in your `wp-config.php` ` // in your wp-config.php define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_MINIMUM_LEVEL', 'debug' ); // For good measure, this will hide errors from being displayed on-screen @ini_set('display_errors', 0); ` 1. As you write your code, sprinkle in these Log methods. = Minimum Level = WP_DEBUG_MINIMUM_LEVEL is a new constant that determines the minimum severity level you wish to write to your *wp-content/debug.log* file. In your *development* environment, I recommend using `debug` so you can see all the errors being written. For your *production* environment, I'd recommend the `error` level, so you can capture all the significant problems. Here are the values to use: **emergency, alert, critical, error, warning, notice, info, debug**. Note: they're all lowercase, as the value is case-sensitive. = Displaying Errors = In your **development** environment, you may choose to set `WP_DEBUG_DISPLAY` to `true`, so the error messages show in your browser. However, I **strongly recommend** that you do not change it, for your *production* environment. These settings can be placed anywhere above the line. ` /* That’s all, stop editing! Happy blogging. */ ` == Logging Levels == There are 8 logging levels available, [defined by RFC 5424](https://tools.ietf.org/html/rfc5424). The levels specified in order from the most severe to the least severe: * **Emergency**: system is unusable * **Alert**: action must be taken immediately * **Critical**: critical conditions * **Error**: error conditions * **Warning**: warning conditions * **Notice**: normal but significant condition * **Info**: informational messages * **Debug**: debug-level messages == Frequently Asked Questions == = Why not just use the error_log function? = You still can. However, the plugin will add value to your logging efforts. Using this logger will add structure io the debug.log file, *and* give you a modern PHP interface to control the amount of logging in your website. The logging methods in this plugin also provide information about the severity of the error. = Where can I find more documentation? = This project is [developed on Github](https://github.com/andrewwoods/wp-debug-logger). There is a more complete readme there, with links to supplemental information. = Why use PSR-3? = A PSR is a PHP Standard Recommendation. PSRs are use to create and maintain interoperability between PHP-based frameworks and content management systems. == Screenshots == No screenshots yet. == Upgrade Notice == = 0.3.0 = Gain the ability to log WP_Error objects == Changelog == = 0.3.0 = * Add the ability to log WP_Error objects - Add `Log::wp_error()` and its corresponding `Logger->log_wp_error` method - Add method Logger->has_level() to ensure a level exists = 0.2.0 = * Add `Log::print()` and `Log::dump()` methods * Improve documentation = 0.1.0 = * Import PSR-3 from PHP FIG into `lib` directory * Create Logger class to write log * Create Log class to statically interact with Logger class * Add usage instructions and logging levels