Примитивное логгирование в 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. Раньше тоже велосипедил с добавлением лога в отдельный файл, а потом подумал «А зачем?». В большинстве случаев достаточно так.
