Giter VIP home page Giter VIP logo

yii-monolog's Introduction

Monolog integration for Yii 1.x

Inspired by enlitepro/enlite-monolog and smartapps-fr/yii-monolog

Install

The recommended way to install is through composer from command line.

composer require asuran/yii-monolog

Usage

  1. Add the component to the preload list
<?php 

return [
    'preload' => [
        'monolog',
    ],
];
  1. Configure the component
<?php
return [
    'components' => [
        'monolog' => [
            'class' => 'YiiMonolog\MonologComponent',
            'name' => 'MyApplication',
            'handlers' => [
                'file' => [
                    'class' => 'Monolog\Handler\StreamHandler',
                    'stream' => '/runtime/app.log',
                    'formatter' => 'Monolog\Formatter\LineFormatter',
                ],
                static function () {
                    /** @var StreamHandler $stream */
                    $stream = Yii::createComponent([
                        'class' => RotatingFileHandler::class,
                    ],
                        Yii::app()->runtimePath.'/application.log', 10);
            
                    $formatter = Yii::createComponent([
                        'class' => LineFormatter::class,
                    ]);
            
                    $stream->setFormatter($formatter);
            
                    return $stream;
                }
            ],
            'processors' => [
                'Monolog\Processor\ProcessIdProcessor',
            ],
        ],
    ],
];
  1. Add log route
<?php
return [
    'components' => [
        'log' => [
            'class' => 'CLogRouter',
            'routes' => [
                'monolog' => [
                    'class' => 'YiiMonolog\MonologLogRoute',
                ],
            ],
        ],
    ],
];
  1. Add exception handler
<?php
return [
    'components' => [
        'errorHandler' => [
            'class' => 'YiiMonolog\MonologErrorHandler',
            'errorAction' => 'site/error',
        ],
    ],
];
  1. Use it
<?php

# Using info with variables
Yii::log("A new store user did a self-register on the system", \Monolog\Logger::INFO, [
                    'id' => $form->usuario->id,
                    'category' => 'users',
                ]);

# Using debug with variables
Yii::log("Info about the new store user created", \Monolog\Logger::DEBUG, [
                    'id' => $form->usuario->id,
                    'cnpj' => $form->usuario->usu_login,
                    'email' => $form->usuario->usu_email,
                    'category' => 'users',
                    ]);

# Using error without variables.
# System will convert the 3th parameter in "category" parameter and store it as an array of variables
# This first example keeps the Yii::log compatible with old logs in your system
Yii::log("File not found", CLogger::LEVEL_ERROR, "command.gearman");

# This another example allows to use all monolog levels for messages
Yii::log("File not found", \Monolog\Logger::ERROR, "command.gearman");  

yii-monolog's People

Contributors

papppeter avatar alanwillms avatar asuran avatar sibirsky87 avatar tomkoo 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.