# 日志
在類中使用下面 trait 獲取對象實例。
~~~
use GetLogger;
~~~
之后可使用該 trait 的所有方法。
~~~
$this->debug()
$this->error()
$this->log()
~~~
也可以使用DI的注入方式
~~~
/**
* @Inject()
* @var Logger
*/
protected $log;
~~~
~~~
$this->log->debug()
$this->log->error()
$this->log->log()
~~~
接口定義及級別說明。
~~~
interface LoggerInterface
{
/**
* 系統不可用
*
* @param string $message
* @param array $context
* @return null
*/
public function emergency($message, array $context = array());
/**
* **必須** 立刻采取行動
*
* 例如:在整個網站都垮掉了、數據庫不可用了或者其他的情況下, **應該** 發送一條警報短信把你叫醒。
*
* @param string $message
* @param array $context
* @return null
*/
public function alert($message, array $context = array());
/**
* 緊急情況
*
* 例如:程序組件不可用或者出現非預期的異常。
*
* @param string $message
* @param array $context
* @return null
*/
public function critical($message, array $context = array());
/**
* 運行時出現的錯誤,不需要立刻采取行動,但必須記錄下來以備檢測。
*
* @param string $message
* @param array $context
* @return null
*/
public function error($message, array $context = array());
/**
* 出現非錯誤性的異常。
*
* 例如:使用了被棄用的API、錯誤地使用了API或者非預想的不必要錯誤。
*
* @param string $message
* @param array $context
* @return null
*/
public function warning($message, array $context = array());
/**
* 一般性重要的事件。
*
* @param string $message
* @param array $context
* @return null
*/
public function notice($message, array $context = array());
/**
* 重要事件
*
* 例如:用戶登錄和SQL記錄。
*
* @param string $message
* @param array $context
* @return null
*/
public function info($message, array $context = array());
/**
* debug 詳情
*
* @param string $message
* @param array $context
* @return null
*/
public function debug($message, array $context = array());
/**
* 任意等級的日志記錄
*
* @param mixed $level
* @param string $message
* @param array $context
* @return null
*/
public function log($level, $message, array $context = array());
}
~~~
## 使用案例
~~~
private function test_redis(){
$key = '123';
$this->redis()->set($key, $key);
$val = $this->redis()->get($key);
assert($key,$val);
$this->log(Logger::DEBUG,'assert redis set/get',['a' => $key, 'b' =>$val]);
$this->debug('assert redis set/ge');
}
~~~
- 前言
- 捐贈ESD項目
- 使用篇-通用
- 環境
- 安裝
- 規范
- 壓力測試
- 配置
- 如何設置YML配置
- server配置
- 端口配置
- 項目結構
- 事件派發
- 日志
- 注解
- DI容器
- 自定義進程
- 并發及協程池
- Console插件
- Scheduled插件
- Redis插件
- AOP插件
- Saber插件
- Mysql插件
- mysql事務
- Actuator插件
- Whoops插件
- Cache插件
- PHPUnit插件
- Security插件
- Session插件
- EasyRoute插件
- http路由
- ProcessRpc插件
- AutoReload插件
- AnnotationsScan插件
- Tracing-plugin插件
- MQTT插件
- Pack插件
- AMQP插件
- Validate插件
- Uid插件
- Topic插件
- Blade插件
- CsvReader插件
- hashed-wheel-timer-plugin插件
- 使用篇-HTTP
- 路由
- 靜態文件
- 路由定義
- 修飾方法
- 路由分組
- 資源路由
- 端口作用域
- 異常處理
- 跨域請求
- 路由緩存
- 控制器
- 控制器初始化
- 前置操作
- 跳轉和重定向
- 異常處理
- 請求
- 請求對象
- 請求信息
- request消息
- response消息
- stream消息
- url接口
- 驗證器
- 內置驗證器
- 內置過濾器
- 使用篇-WS
- 如何使用
- 路由
- 使用篇-TCP
- 插件篇-PluginSystem
- 微服務篇-ESDCloud
- CircuitBreaker插件
- SaberCloud插件
- 分布式鏈路追蹤系統
- Consul插件