Примитивное логгирование в YII2

Иногда необходимо в проект добавить логгирование событий работы, однако не всегда удобно тащить для этого кучу сторонних библиотек. Тем более что особых требований и не нужно. Если достаточно что бы:

  • логи велись «стандартно» для системы на базе Linux, с автоматической ротацией и т.п.
  • особых тонкостей и настроек для вывода не нужно, достаточно просто текста

То вполне можно написать свою простенькую модель вида:

<?php
namespace app\models;
use Yii;

class Logger {
    
    const Error=1;
    const Info=2;
    const Warning=3;
    const Success=4;
    const Fail=5;
    
 public static function Log($message,$type=self::Info){
     $prefix="Info:";
     if ($type==self::Error)    $prefix="Error";
     if ($type==self::Info)     $prefix="Info";
     if ($type==self::Warning)  $prefix="Warning";
     if ($type==self::Success)  $prefix="Success";
     if ($type==self::Fail)  $prefix="Fail";
     /usr/bin/logger "(GEO) $prefix: $message";
 }   
}

И использовать её далее в любом месте в коде, например так:

        Logger::Log("-попытка авторизации в AD $username");        
        // авторизуемся в AD
        $ldapbind = @ldap_bind($ldap_con, $username."@".$value["ldap_server"], $password);                        
        if ($ldapbind==false) {
            Logger::Log("--ошибка",Logger::Fail);
            return null;            
        };
        Logger::Log("--ok",Logger::Success);

Логи можно будет наблюдать в стандартном /var/log/messages:P.S. Раньше тоже велосипедил с добавлением лога в отдельный файл, а потом подумал «А зачем?». В большинстве случаев достаточно так.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.