mirror of
https://github.com/nextcloud/lognormalizer.git
synced 2025-10-26 15:06:19 +01:00
No description
|
|
||
|---|---|---|
| .github | ||
| LICENSES | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .php-cs-fixer.dist.php | ||
| CHANGELOG.md | ||
| composer.json | ||
| COPYING | ||
| phpunit.xml | ||
| psalm.xml | ||
| README.md | ||
| REUSE.toml | ||
Log Normalizer
Parses variables and converts them to string so that they can be logged
Based on the Monolog formatter/normalizer.
How to use
Initialization in your class
use Nextcloud\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 arraysint $maxArrayItems: The maximum number of elements you want to show, when parsing an array or an objectstring $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);