onnerby/doelogger

JSON log writer/reader

1.0 2023-01-02 10:54 UTC

This package is auto-updated.

Last update: 2024-04-25 16:22:43 UTC


README

A JSON logger for PHP Sometimes you need to log stuff - but you may need to read the log later on and be able to intepret the content of the log in a nice way. This is where JSON is perfect since you can serialize and deserialize in a simple way. The log uses file locks to prevent corrupt files.

\Doe\Logger

The Doe\Logger is designer to make it super simple to log data and also to read the log.

Installation

composer require onnerby/doelogger

Basic example

// Initialize the log by
\Doe\Logger::addDefaultStream('/var/log/mylog')

// The anywhere in your code
\Doe\Logger::write('adduser', 'Added a new user', $user);

This will make a log entry adduser with the data provided. The logger will create a file at /var/log/mylog_2023-01-02.json (if it's not there already) and write a json entry in that log looking something like this

{
	"when": 1672656212.123,
	"type": "adduser",
	"content": [
		...
	]
}

Reading

// Initialize the log by
\Doe\Logger::addDefaultStream('/var/log/mylog')

// Get a reader for the last 24 hours
$logReader = \Doe\Logger::reader('default', microtime(true) - 60*60*24);

// Loop through the log
foreach ($logReader as $logEntry) {
	echo "Log " . date('Y-m-d H:i:s', $logEntry['when']) . ' ' . $logEntry['type'] . "\n";
	echo "  User: " . json_encode($logEntry['content'][0]) . "\n";
}