Monolog是php下比較全又容易擴展的記錄日志組件。目前有包括Symfony 、Laravel、 CakePHP等諸多知名php框架都內置了Monolog。
Monolog可以把你的日志發送到文件,sockets,收件箱,數據庫和各種web服務器上。一些特殊的組件可以給你帶來特殊的日志策略。
日志級別
- DEBUG:詳細的debug信息
- INFO:感興趣的事件。像用戶登錄,SQL日志
- NOTICE:正常但有重大意義的事件。
- WARNING:發生異常,使用了已經過時的API。
- ERROR:運行時發生了錯誤,錯誤需要記錄下來並監視,但錯誤不需要立即處理。
- CRITICAL:關鍵錯誤,像應用中的組件不可用。
- ALETR:需要立即采取措施的錯誤,像整個網站掛掉了,數據庫不可用。這個時候觸發器會通過SMS通知你,
使用例子:
安裝:composer require monolog/monolog
<?php
include 'vendor/autoload.php';//包含自動加載文件
//引入對應類文件的命名空間
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\FirePHPHandler;
use Monolog\Formatter\LineFormatter;
// Create some handlers
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
$firephp = new FirePHPHandler();
// Create the main logger of the app
$logger = new Logger('my_logger');
//定義保存日志的方式
$logger->pushHandler($stream);
$logger->pushHandler($firephp);
//記錄日志的各種方法
$securityLogger->debug('I am debug', array $context = array());
$securityLogger->info('I am info', array $context = array());
$securityLogger->notice('I am notice', array $context = array());
$securityLogger->warn('I am warn', array $context = array());
$securityLogger->error('I am error', array $context = array());
$securityLogger->critical('I am critical', array $context = array());
$securityLogger->alert('I am alert', array $context = array());
$securityLogger->emergency('I am emergency', array $context = array());