Fecshop Log日志

2018-05-24 14:51 更新

Fecshop Log日志

1.日志配置 @app/config/main.php 打開后,可以看到log組件的配置如下:

'log' =>[  
    # 追蹤級別  
    # 消息跟蹤級別  
    # 在開發(fā)的時候,通常希望看到每個日志消息來自哪里。這個是能夠被實現(xiàn)的,通過配置 log 組件的 yii\log\Dispatcher::traceLevel 屬性, 就像下面這樣:  
    'traceLevel' => 3,  

      
    # 通過 yii\log\Logger 對象,日志消息被保存在一個數(shù)組里。為了這個數(shù)組的內存消耗, 當數(shù)組積累了一定數(shù)量的日志消息,日志對象每次都將刷新被記錄的消息到 log targets 中。 你可以通過配置 log 組件的 yii\log\Dispatcher::flushInterval 屬性來自定義數(shù)量  
    'flushInterval' => 1,  

      
    'targets' => [  
        'file' =>[  
            //'levels' => ['trace'],  
            'categories' => ['fecshop_debug'],  
            'class' => 'yii\log\FileTarget',  
            # 當 yii\log\Logger 對象刷新日志消息到 log targets 的時候,它們并 不能立即獲取導出的消息。相反,消息導出僅僅在一個日志目標累積了一定數(shù)量的過濾消息的時候才會發(fā)生。你可以通過配置 個別的 log targets 的 yii\log\Target::exportInterval 屬性來 自定義這個數(shù)量,就像下面這樣:  
            'exportInterval' => 1,  
            # 輸出文件  
            'logFile' => '@apphtml5/runtime/fecshop_logs/fecshop_debug.log',  
            # 你可以通過配置 yii\log\Target::prefix 的屬性來自定義格式,這個屬性是一個PHP可調用體返回的自定義消息前綴  
            'prefix' => function ($message) {  
                return $message;  
            },  
            # 除了消息前綴以外,日志目標也可以追加一些上下文信息到每組日志消息中。 默認情況下,這些全局的PHP變量的值被包含在:$_GET, $_POST, $_FILES, $_COOKIE,$_SESSION 和 $_SERVER 中。 你可以通過配置 yii\log\Target::logVars 屬性適應這個行為,這個屬性是你想要通過日志目標包含的全局變量名稱。 舉個例子,下面的日志目標配置指明了只有 $_SERVER 變量的值將被追加到日志消息中。  
            # 你可以將 logVars 配置成一個空數(shù)組來完全禁止上下文信息包含?;蛘呒偃缒阆胍獙崿F(xiàn)你自己提供上下文信息的方式, 你可以重寫 yii\log\Target::getContextMessage() 方法。  
             'logVars' => [],  
        ],  
    ],  
],

如果要開啟log,可以把注釋去掉,查看 'logFile' => '@apphtml5/runtime/fecshop_logs/fecshop_debug.log', 對應的文件是否存在,如果不存在,需要新建文件 fecshop_debug.log ,并設置可寫即可完成配置。

2.日志的使用

\Yii::info($post_log,'fecshop_debug');

其中第二個參數(shù) fecshop_debug 對應上面的配置 'categories' => ['fecshop_debug'],

您可以定義多個 targets 每個targets的categories 不同,然后在輸出的時候做區(qū)分 就可以把日志寫入到不同的log文件里面了

Yii2 Log的特性

通過上面的特性,可以知道log在使用過程中的一些情況,log的配置以及l(fā)og 文件如果存在問題,調用log的函數(shù)\Yii::info($post_log,'fecshop_debug') 不會卡住,會繼續(xù)執(zhí)行。

fecshop 代碼里面會加入一些log的代碼,在線上環(huán)境中可以把 fecshop_debug 對應的配置去掉 就不會輸出log,您可以自定義一些log的配置,然后做自定義log的輸出。

關于Yii Log更多的資料可以參閱: Yii Log

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號