vrza/simplogger

轻量级 PHP 日志库

v1.0.0 2024-02-21 14:45 UTC

This package is auto-updated.

Last update: 2024-09-28 16:25:57 UTC


README

概述

Simplogger 的目标是提供一个轻量级、易于使用和集成的 PHP 日志实用程序库。

Simplogger 可以记录到

  • stdout/stderr

  • 本地 syslogd (/dev/log)

  • 远程 syslogd (UDP)

  • 文件

典型用例是一个使用 syslogd 进行日志记录的 PHP 微服务,但在开发环境中也可以轻松地使用 stdout/stderr。

use \VladimirVrzic\Simplogger\StdouterrLogger;
use \VladimirVrzic\Simplogger\SyslogLogger;

$ident = basename($argv[0]);
$opts = getopt('s', ['syslog']);
$logger = array_key_exists('s', $opts) || array_key_exists('syslog', $opts)
  ? new SyslogLogger($ident, LOG_CONS, LOG_LOCAL1)
  : new StdoutLogger;
$logger->notice('Hello world!');

设置

安装

假设您已安装 PHP Composer,并且 composer 可执行文件位于您的 $PATH

composer require vrza/simplogger

记录到本地 syslog

$ident = 'my-program-name';
$facility = LOG_LOCAL1;
$options = LOG_CONS;
$logger = new SyslogLogger($ident, $options, $facility);

SyslogLogger 使用 PHP 的 syslog() 函数进行记录。参数与传递给 openlog() 的参数相同。

通过 UDP 记录到远程 syslogd

$syslogHost = 192.0.2.22;
$syslogPort = 514;
$logger = new RemoteSysLogger($ident, $facility, $syslogHost, $syslogPort);

RemoteSysLogger 通过 UDP 将所有消息发送到 syslogd。默认主机为 127.0.0.1,默认端口号为 514。

记录到 stdout/stderr

$logger = new StdoutLogger;

StdoutLogger 将所有消息写入 stdout。

StderrLogger 将所有消息写入 stderr。

StdouterrLogger 将 WARNING 和更高严重性的消息写入 stderr,将其他消息写入 stdout。

这些记录器可以设置为可选地包含每个消息的时间戳、标识符和严重性

$timestamp = TRUE;
$severity = TRUE;
$logger = new StdoutLogger($timestamp, $severity, $ident);

记录到文件

$logFile = '/var/log/my.log';
$logger = new FileLogger($logFile);

FileLogger 将所有消息写入指定的文件。

与 stdout/stderr 记录器类似,FileLogger 也有一个选项可以包含每个消息的时间戳、标识符和严重性。

$logger = new FileLogger($logFile, $timestamp, $severity, $ident);

使用方法

$logger->alert('A message with ALERT severity');
$logger->crit('A message with CRIT severity');
$logger->err('A message with ERR severity');
$logger->warning('A message with WARNING severity');
$logger->notice('A message with NOTICE severity');
$logger->info('A message with INFO severity');
$logger->debug('A messsage with DEBUG severity');