Converts variables to String for easy logging
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
tests
.gitignore
.scrutinizer.yml
.travis.yml
AUTHORS.md
CHANGELOG.md
COPYING
README.md
composer.json
phpunit.xml

README.md

Log Normalizer

Scrutinizer Code Quality Code Climate Build Status Code Coverage

Parses variables and converts them to string so that they can be logged

Based on the Monolog formatter/normalizer.

How to use

Initialisation in your class

use InterfaSys\LogNormalizer\Normalizer;

$normalizer = new Normalizer();

The constructor supports the following optional arguments

  • int $maxRecursionDepth: The maximum depth at which you want to go in objects and arrays
  • int $maxArrayItems: The maximum number of elements you want to show, when parsing an array or an object
  • string $dateFormat: The format to apply to dates

Format variables before logging them

This is what your logging function could look like

/**
 * Converts the variables in the received log message to string before
 * sending everything to the real logger
 *
 * @param string $level
 * @param string $message
 * @param array $variables
 *
 * @return mixed
 */
public function log($level, $message, array $variables= []) {
	array_walk($variables, [$this->normalizer, 'format']);
	
	// Then use your current PSR-3 compatible logging system
	$this->logger->log($level, $message, $variables);
}

And you would call it like this from another class

$myLogger->log('debug',
	'Logger test {var1}, {var2}',
	[
		'var1' => $var1,
		'var2' => $var2
		]
);

Convert a single variable to a string

$normalizedVariable = $this->normalizer->format($variable);