41 lines
932 B
PHP

<?php
namespace nulib\output;
use nulib\output\std\LogMessenger;
use nulib\output\std\ProxyMessenger;
/**
* Class log: ajouter un message dans les logs
*
* Cette classe DEVRAIT être initialisée avant utilisation. Sinon, elle envoie
* ses messages vers /dev/null
*
* mode | con | web | log
* ------|-----|-----|-----
* cli | | | x
* web | | | x
*/
class log extends _messenger {
use _TMessenger;
static function get(): IMessenger {
return self::$msg ??= static::$msg = new ProxyMessenger();
}
protected static function ensure_log(): IMessenger {
$msg = self::$msg;
if ($msg instanceof ProxyMessenger && $msg->isEmpty()) {
$msg->addMessenger(new LogMessenger([
"min_level" => msg::MINOR,
]));
}
return $msg;
}
static function set_output(string $logfile): void {
self::ensure_log()->resetParams([
"output" => $logfile,
]);
}
}