// Created on savesnippets.com · https://savesnippets.com/xqI12grj9FCJVp $v) { if (!is_array($v) && (!is_object($v) || method_exists($v, '__toString'))) { $msg = str_replace('{' . $k . '}', (string)$v, $msg); } } $entry = json_encode([ 'ts' => date('c'), 'level' => (string)$level, 'msg' => $msg, 'ctx' => $context, ]) . PHP_EOL; file_put_contents($this->path, $entry, FILE_APPEND | LOCK_EX); } } $log = new FileLogger('/var/log/myapp.log'); $log->info('user {id} signed in', ['id' => 42]);