- Compatible XF Versions
- 2.1
- 2.2
- 2.3
This XenForo 2.1 addon adds logging functionality using the Monolog library from GitHub - Seldaek/monolog: Sends your logs to files, sockets, inboxes, databases and various web services
Features
Usage Instructions
By default, this addon will log events to a file called
To use the default logging facility, do the following in your addon code:
However, it is recommended that you create your own channel for your addon to make it easier to filter log entries:
Refer to the documentation for more detailed usage instructions for Monolog.
You can create your own handler stack to customise how things are logged:
Refer to Handlers, Formatters and Processors for more information.
Features
- Log to a file
- Send logs via email
- Emailed logs are deduplicated and buffered
- Configure minimum logging levels for files vs email logging
- Add extra visitor data to logs: user_id and username
- Add extra web data to logs: current request URI, request method and client IP
- Test tool included to verify that logs are being written to disk - go to
AdminCP > Tools > Checks and tests > Test Monolog
Usage Instructions
By default, this addon will log events to a file called
internal_data/monolog.log
- this is configurable.To use the default logging facility, do the following in your addon code:
PHP:
use Monolog\Helper\Log;
Log::info('an info message', ['context' => 'foo']);
Log::error('an error message', ['data' => 'bar']);
However, it is recommended that you create your own channel for your addon to make it easier to filter log entries:
PHP:
$logger = \XF::app()->get('monolog')->newChannel('myaddon');
$logger->warning('a warning message', ['context' => 'foo']);
Refer to the documentation for more detailed usage instructions for Monolog.
You can create your own handler stack to customise how things are logged:
Code:
use Monolog\Logger;
$monolog = \XF::app()->get('monolog');
$streamhandler = $monolog->stream(); // return our default stream handler for logging to a file
//(or create your own!)
/** @var Monolog\Logger $logger */
$logger = $monolog->logger('myaddon');
$logger->pushHandler($streamhandler); // push our stream handler onto the handler stack
// you can apply any other customisations you like here as well by adding custom handlers, formatters or processors
$logger->critical('a critical message', ['context' => 'foo']);
Refer to Handlers, Formatters and Processors for more information.