1. Go to this page and download the library: Download mensbeam/logger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mensbeam / logger example snippets
use MensBeam\Logger;
$logger = new Logger();
use MensBeam\{
Catcher,
Logger
};
use MensBeam\Catcher\PlainTextHandler;
$catcher = new Catcher(new PlainTextHandler([
'logger' => new Logger('log'),
'silent' => true
]));
namespace MensBeam;
use MensBeam\Logger\{
Handler,
Level
};
class Logger implements Psr\Log\LoggerInterface {
public bool $warnOnInvalidContextThrowables = true;
public function __construct(?string $channel = null, Handler ...$handlers);
public function getChannel(): ?string;
public function getHandlers(): array;
public function popHandler(): Handler;
public function pushHandler(Handler ...$handlers): void;
public function setChannel(?string $value): void;
public function setHandlers(Handler ...$handlers): void;
public function shiftHandler(): Handler;
public function unshiftHandler(Handler ...$handlers): void;
public function emergency(string|\Stringable $message, array $context = []): void;
public function alert(string|\Stringable $message, array $context = []): void;
public function critical(string|\Stringable $message, array $context = []): void;
public function error(string|\Stringable $message, array $context = []): void;
public function warning(string|\Stringable $message, array $context = []): void;
public function notice(string|\Stringable $message, array $context = []): void;
public function info(string|\Stringable $message, array $context = []): void;
public function debug(string|\Stringable $message, array $context = []): void;
public function log(int|string|Level $level, string|\Stringable $message, array $context = []): void;
}
namespace MensBeam;
enum Level: int {
case Emergency = 0;
case Alert = 1;
case Critical = 2;
case Error = 3;
case Warning = 4;
case Notice = 5;
case Info = 6;
case Debug = 7;
public static function fromPSR3(string $level): self;
public function toPSR3(): string;
}
namespace MensBeam\Logger;
abstract class Handler {
protected array $levels;
protected bool $_bubbles = true;
protected callable $_messageTransform = null;
protected string $_timeFormat = 'M d H:i:s';
public function __construct(array $levels = [ 0, 1, 2, 3, 4, 5, 6, 7 ], array $options = []);
public function getLevels();
public function getOption(string $name): mixed;
public function setLevels(int ...$levels): void;
public function setOption(string $name, mixed $value): void;
public function __invoke(int $level, ?string $channel, string $message, array $context = []): void;
abstract protected function invokeCallback(string $time, int $level, string $channel, string $message, array $context = []): void;
}
function (string $message, array $context): string;
$handler = new StreamHandler(options: [
'messageTransform' => function (string $message, array $context): string {
return vsprintf($message, $context);
}
]);
namespace MensBeam\Logger;
class StreamHandler extends Handler {
public function __construct(resource|string $stream = 'php://stdout', array $levels = [ 0, 1, 2, 3, 4, 5, 6, 7 ], array $options = []);
public function getStream(): ?resource;
public function getURI(): ?string;
public function setStream(resource|string $value): void;
}
function (string $time, int $level, string $levelName, string $channel, string $message, array $context): string;