Примитивное логгирование в YII2
Иногда необходимо в проект добавить логгирование событий работы, однако не всегда удобно тащить для этого кучу сторонних библиотек. Тем более что особых требований и не нужно. Если достаточно что бы:
- логи велись «стандартно» для системы на базе Linux, с автоматической ротацией и т.п.
- особых тонкостей и настроек для вывода не нужно, достаточно просто текста
То вполне можно написать свою простенькую модель вида:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?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"`; } } |
И использовать её далее в любом месте в коде, например так:
|
1 2 3 4 5 6 7 8 9 |
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. Раньше тоже велосипедил с добавлением лога в отдельный файл, а потом подумал «А зачем?». В большинстве случаев достаточно так.
