arashdalir/php-psr3log

该软件包最新版本(v1.1.0)没有可用的许可信息。

这是lvht\updlog的SysLog over UDP实现的扩展,旨在使库可扩展,并使其他日志目标使用相同的格式成为可能。

v1.1.0 2018-06-13 09:51 UTC

This package is auto-updated.

Last update: 2024-09-21 23:14:33 UTC


README

ArashDalir\Psr3Log 是一个遵循 PSR3 的实现,按照 RFC 5424 发送日志。该库基于 lvht\updlog 的UDP-Based SysLog库实现,将其通用化,并允许进一步扩展基本系统。

安装

使用以下命令将存储库添加到您的项目中

composer require arashdalir/php-psr3log:dev-master

或者在您的 composer.json 中添加以下行

{
  "require": {
     "arashdalir/php-psr3log": "dev-master"
  }
}

用法

目前,只有SysLog over UDP格式和本地SysLog的Psr3Log处理器实现。

本地SysLog

在创建对象时未定义地址,对象将尝试将值写入本地syslog。

基于UDP的SysLog客户端

构造函数接受一个IP地址和一个syslog服务器所在的端口号,并将日志发送到远程服务器。

在Windows上的使用

请注意,在Windows上 只能使用LOG_USER设施。使用其他设施将抛出类型为 ArashDalir\Handler\SysLog\InvalidFacilityException 的异常,如果 setFacility($facility, $os_form) 的第二个参数设置为true。

<?php
include 'vendor/autoload.php';

$udp = new ArashDalir\Handler\SysLog\SysLog('127.0.0.1');
$udp->getLogMessage()->setFacility(LOG_AUTH, false)
    ->setVersion(\ArashDalir\Handler\SysLog\SysLogMessage::VERSION_1) // available as of V1.1.0
    ->setHostname('ada')
    ->setProcessId(8848)
    ->setMessageId('demo')
    ->setAppName('php');

$udp->error('UDP SysLog Error Test');
$udp->info('UDP SysLog Info Test');
$udp->debug('UDP SysLog Debug Test');
$udp->emergency('UDP SysLog Emergency Test');

$local = new \ArashDalir\Handler\SysLog\SysLog();
$local->getLogMessage()->setFacility(LOG_USER)
    ->setHostname('ada')
    ->setProcessId(8848)
    ->setMessageId('demo')
    ->setAppName('php');

$local->error('Local SysLog Error Test');
$local->info('Local SysLog Info Test');
$local->debug('Local SysLog Debug Test');
$local->emergency('Local SysLog Emergency Test');

状态

Psr3Log扩展了Udplog。它提供了一个符合PSR-3的日志记录器实现。与Udplog一样,Psr3Log不支持 STRUCTURED-DATA。希望未来的版本将解决这个问题...

版本

v1.1.0

  • 增加了对 RFC5424 (syslog V1) 的支持
  • 如果直接使用 psr3log->log 函数,可以手动设置消息时间戳 - 主要为实现扩展而实现,以便将其他日志记录器的日志消息馈入此库。

v1.0.0

第一个稳定版本 - 实现了以下功能