arashdalir/php-psr3log

There is no license information available for the latest version (v1.1.0) of this package.

This is an extension of lvht\updlog's SysLog over UDP implementation, meant to make the library extendable and also make it possible to use the same format for other log destinations.

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

This package is auto-updated.

Last update: 2024-04-21 22:18:37 UTC


README

ArashDalir\Psr3Log is a PSR3 implementation, which sending log according RFC 5424. This library forks the implementation of UDP-Based SysLog library implemented as lvht\updlog, generalises it and allows further extension of the base system.

Install

Use following command to add the repository to your project:

composer require arashdalir/php-psr3log:dev-master

Or add following line to your composer.json:

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

Usage

Currently, there is only one realization of Psr3Log Handlers for SysLog over UDP format and local SysLog.

Local SysLog:

By not defining an address when creating an object, the object tries to write the values in local syslog.

UDP-Based SysLog Client:

The constructor function accepts an IP-Address and a port where the syslog server is, and will send logs to the remote server.

Usage on Windows:

Please note that on Windows only LOG_USER facility is allowed. Using other facilities will throw an Exception of type ArashDalir\Handler\SysLog\InvalidFacilityException, if the second parameter for setFacility($facility, $os_form) is set to 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');

Status

Psr3Log extends Udplog. It provides a PSR-3 conform implementation of a logger. As Udplog, Psr3Log doesn't support STRUCTURED-DATA. Hopefully the future releases will cover this up...

Versions

v1.1.0:

  • added support for RFC5424 (syslog V1)
  • message timestamp can be set manually if psr3log->log function is used directly - mainly implemented for extension purposes, so that log messages from other loggers can be fed into this library.

v1.0.0:

first stable release - following features implemented