Giter Club home page Giter Club logo

le7-logger's Introduction

Simple PSR-3 logger class for le7 framework or any PHP project

Requirements

  • PHP 8.1 or higher.
  • Composer 2.0 or higher.

What it can?

  • Log to any destination (need to write similar adapter), by default present file, std and null
  • Write more than one destination (for example in two files similarry or to file and to db)

Installation

composer require rnr1721/le7-logger

Tests

composer test

How use it?

use Core\Logger\LoggerFactoryGeneric;

    $factory = new LoggerFactoryGeneric();

    // $log = $this->factory->logStd(); - for docker etc
    $log = $this->factory->logFile('/home/www/example.com/myproject/log.txt');

    // Use it as any PSR logger
    $log->info('info message');
    $log->critical('alert message');

How use different destinations?

For example, we need to write file to two different destinations

use Core\Logger\LoggerFactoryGeneric;

    $factory = new LoggerFactoryGeneric();

    $path1 = '/home/www/example.com/myproject/log1.txt';
    $path2 = '/home/www/example.com/myproject/log2.txt';

    $log = $this->factory->getLogger();

    $log->addBroadcast(new LoggerRouteFile(['filePath' => $path1]))
            ->addBroadcast(new LoggerRouteFile(['filePath' => $path2]));

    // Use it as any PSR logger
    $log->info('info message');
    $log->critical('alert message');

Different format in file adapter

use Core\Logger\Adapters\LoggerRouteFile;

// ...

    $params = [
        'filePath' => '/path/to/your/log.log',
        'template' => '{date} {level} {message} {context}';
    ];

    $log->addBroadcast(new LoggerRouteFile($params));

or different way

use Core\Logger\Adapters\LoggerRouteFile;

// ...

    $loggerRouteFile = new LoggerRouteFile();
    $loggerRouteFile->setFilePath('/your/file/path')
        ->setTemplate('{date} {level} {message} {context}');

    $log->addBroadcast($loggerRouteFile);

le7-logger's People

Watchers

Eugeny G avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.