Yii ?????? ?? ???: ?????? ??? ??
Jun 21, 2023 pm 03:42 PMYii ??????? ???? ??? ? ?? ??? ??? ? ??? ?????? ???? ??? ? ?? ??? ?? ???? ????. ? ???? Yii ??????? ?? ???? ?? ???? ? ?? ???? ??? ?????.
- ?? ?? ?? ??
Yii ?????? ????? ??? ?? ?? ???? ?????. ?? ???? ?? ?? ??? ???? ???. ??? ??? ?? ?????.
'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yiilogFileTarget', 'levels' => ['error', 'warning'], 'logFile' => '@runtime/logs/app.log', ], ], ],
? ? traceLevel
? debug
???? Yii ?????? ??? ?? ??? ?????. ??? ??? ???? ????. targets
? ?? ?? ??? ??? ? ?? ?????. ? ??? error
? warning
??? ???? ??? ??? ????. @runtime/logs/app.log
??? ?????. traceLevel
是指Yii框架在debug
模式下記錄的日志級別,越高則記錄的信息越詳細。targets
是一個數(shù)組,可以配置多個日志目標(biāo),本例中只有一個目標(biāo),即將error
和warning
級別的日志寫入@runtime/logs/app.log
文件。
- 記錄日志信息
在代碼中記錄日志信息很簡單,可以使用Yii框架提供的快捷函數(shù),例如:
Yii::info('This is an info message.'); Yii::warning('This is a warning message.'); Yii::error('This is an error message.');
快捷函數(shù)中,info
、warning
和error
分別對應(yīng)日志的三個級別??梢愿鶕?jù)情況選擇使用。
在記錄日志時,除了直接記錄字符串以外,還可以使用可替換的數(shù)據(jù),使用占位符{}
表示。例如:
Yii::info('User {username} registered successfully.', ['username' => 'John']);
此時,{username}
將被替換為'John'。這樣的好處是日志信息更加詳細,更易于排查問題。
- 使用上下文信息
Yii框架的日志系統(tǒng)支持使用上下文信息來記錄更詳細的日志信息。上下文信息包括了一些額外的數(shù)據(jù),例如當(dāng)前用戶的信息、請求參數(shù)等等。在記錄日志時,可以通過設(shè)置$context
參數(shù)來添加上下文信息,例如:
Yii::warning('Invalid user input', ['category' => 'appcontrollersMyController', 'action' => 'create', 'params' => $_POST]);
在上述代碼中,我們使用了3個上下文信息,分別是所屬的控制器類、請求的方法和請求參數(shù)。這樣就可以更加清晰地了解日志發(fā)生的位置以及具體的請求信息。
- 過濾和分類
在實際應(yīng)用中,我們可能并不希望記錄所有的日志信息。Yii框架的日志系統(tǒng)提供了過濾和分類的機制,可以根據(jù)條件過濾和分類日志消息。
在配置中,可以設(shè)置categories
屬性來分類日志消息,例如:
'log' => [ 'targets' => [ [ 'class' => 'yiilogFileTarget', 'categories' => ['appcontrollersMyController'], 'logFile' => '@runtime/logs/mycontroller.log', ], ], ],
在上述配置中,我們只記錄來自appcontrollersMyController
控制器的日志信息,并將它們寫入@runtime/logs/mycontroller.log
文件。
除了分類之外,我們還可以使用函數(shù)過濾日志消息,例如:
'log' => [ 'targets' => [ [ 'class' => 'yiilogFileTarget', 'levels' => ['error'], 'logFile' => '@runtime/logs/app.log', 'logVars' => [], 'except' => [ 'yiiwebHttpException:404', ], ], ], ],
在上述配置中,我們只記錄error
級別的日志信息,同時忽略了所有的上下文信息。我們使用了except
屬性來指定要忽略的日志消息。在此例中,我們忽略了所有的404錯誤信息。
- 自定義日志目標(biāo)
Yii框架的日志系統(tǒng)允許我們自定義日志目標(biāo),例如將日志消息發(fā)送到email、數(shù)據(jù)庫或者第三方日志服務(wù)等等。需要自定義日志目標(biāo)時,我們需要繼承yiilogTarget
類,并實現(xiàn)export
方法。例如:
class EmailTarget extends yiilogTarget { public $to; public function export() { foreach ($this->messages as $message) { mail($this->to, $message[0], $message[1]); } } }
在上述代碼中,我們定義了一個自定義的郵件目標(biāo),并實現(xiàn)了export
方法。在export
方法中,我們使用mail
- ?? ?? ??
Yii ??????? ???? ???? ??? ???? ?? ?????. ?:
rrreee???? ???? , info
, warning
? error
? ?? ? ?? ??? ??? ?????. ??? ?? ???? ????? ???.
{}
? ???? ?? ??? ???? ??? ?? ????. ?: ??rrreee?? ?? {username}
? 'John'?? ?????. ??? ??? ?? ??? ? ???? ?? ??? ? ??? ????. ??- ????? ?? ????????Yii ?????? ?? ???? ??? ??? ???? ?? ??? ?? ??? ????? ?????. ???? ???? ?? ??? ??, ?? ???? ?? ?? ?? ?? ???? ?????. ??? ??? ?
$context
????? ???? ??? ??? ??? ? ????. ?: ??rrreee??? ????? 3?? ??? ??, ? ???? ???? ?? ??? ? ??? ?????. ????. ?? ?? ??? ???? ??? ?? ?? ??? ?? ???? ??? ? ????. ??- ????? ? ?????????? ????????? ?? ?? ??? ???? ?? ?? ?? ????. Yii ?????? ?? ???? ??? ?? ?? ???? ????? ??? ? ?? ??? ? ?? ????? ?????. ????????
categories
??? ?????? ?? ???? ??? ? ????. ?: ??rrreee??? ????? appcontrollersMyController
? ?? ??? ?????. > ????, @runtime/logs/mycontroller.log
??? ?????. ?????? ??? ??? ???? ?? ???? ???? ?? ????. ?: ??rrreee??? ????? ?? ??? ??? ???? ??
?? ?? ??? ?????. ??? ?? ???? ????? out
??? ???????. ? ???? 404 ?? ???? ?? ?????. ??- ????? ?? ????????Yii ?????? ?? ???? ???? ?? ???? ???, ?????? ?? ?? ?? ??? ?? ??? ? ?? ??? ?? ??? ? ????. ?? ??? ??? ???? ?? ??
yiilogTarget
???? ???? export
???? ???? ???. ?: ??rrreee??? ????? ??? ?? ??? ??? ???? export
???? ?????. export
?????? mail
??? ???? ??? ????? ?? ???? ????. ?????? ????????? ??? ?? ?? ?? ??? ???? ?? ??? ?? ??? ?? ??? ??? ? ????. ?????????? Yii ?????? ?? ???? ???? ? ?? ??? ? ?? ??? ?? ?????? ???? ???? ? ??? ? ? ?? ?? ???? ?? ?????. ?? ???? ??? ? ?? ?? ? ????? ??? ??? ?? ??, ?? ? ???, ?? ?? ??? ?? ?? ?? ? ?? ???? ?? ???? ???. ?? ???? ?? ???? ??? ??? ??? ???? ?? ??? ? ? ???? ??????? ??? ??? ???? ? ????. ??? ??? Yii ?????? ?? ???: ?????? ??? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

Linux ?????? ?? ??? ???? ?? ??? ??? ? ? ????. tail ??: tail ??? ?? ?? ?? ??? ???? ? ?????. ?? ?? ??? ?? ?? ???? ??????. tail [??] [?? ??] ????? ???? ??? ??? ????. -n: ??? ? ?? ?????. ???? 10????. -f: ?? ??? ????? ??????, ??? ?????? ???? ? ??? ?????. ?: tail-n20logfile.txt#logfile.txt ??? ??? 20? ?? tail-flogfile.txt#logfile.txt ??? ????? ??? ????? ???? head ??: head ??? ?? ??? ???? ? ?????. ?? ???

PHP?? ??? ?? ??????? ???? ???? EventSourceAPI? ???? ??? ??? ???? EventSource ??? ???? ????? ??? ???? ???? ??? ?????. SSE(Server Sent Events)? ???? ???? ??? XMLHttpRequest ??? ???? ????? ??? ???? ?????. ???? ?? EventSource? ???? ?? ??? ? ????? ????? ?? ?? ?????? ????. ?? ??? ???? ???? ????? ??? ???? ?? ??? ?????, ?????? EventSource? ?? ?? ????? ???? ?? ?????. ???.

jQuery? DOM ??, ??? ??, ????? ?? ?? ????? ? ??? ? ?? ?? ?? JavaScript ????????. ? ???? ??? ?? ??? ?? ??? ???? ???? ?? ??? ?? ?????. ? ????? jQuery? ???? ?? ?? ?? ???? ????? ??? ???? ?? ?? ??? ?????. ?? ??? ???? ??? ??? ???? ??? ???? ???.

?? ??? ?: ??? ????? ??? ??? ???????. ????? ??? ?? ?? ?? ??????. ??? ??? ???? ?? ??? ???????. ?????? ?? ? ?? ??? ????? ?? ?? ??? ??????.

jQuery? ?? ?? ???? ?? ???? ?? ????? ?? ???? ?? ? ??, ???? ?? ?? ?? ?? ?? ?? ??? ???? ?? ??? ?? ???? ???. ?? ???? JavaScript ?????? jQuery? ???? ?? ?? ???? ???? ?? ?? ???? ??????. ? ????? jQuery? ???? ?? ?? ???? ???? ??? ???? ??? ? ??? ? ? ???? ??? ? ??? ?? ?? ?? ??? ?????. ??, ???? ??? ???? ???.

Linux ?? ?? ?? ? ?? ?? Linux ????? ?? ??? ???? ?? ??, ??? ?? ? ??? ??? ??? ???? ? ?? ?????. ?? ??? ?????? ??? ???? ??? ??? ???? ?? ?? ??? ? ????. ? ????? Linux ???? ???? ?? ?? ??? ?? ?? ??? ?????. 1. ?? ??? ?? ??? ??: ??? ??? ??? ??, ??, ??? ?? ? ?? ? ???? ?? ??? ???? ?? ?????.

YII ??? ???? ???? ?? ? ?? ??? ?? ?? ?? ???? ??????. 1. MVC ???? : ??, ? ? ????? ?? ??? ?????. 2. ACTIVERECORD : ORM ?? ??? ????? ?????? ??? ???????. 3. ?? ? ??? : ?? ?? ?? ? ??? ??? ???? ??? ?????? ???? ?????. ??? ?? ??? ?? ??? ????? ????? ?? ?? ? ??????.

HTTP500 ?? ?? ??? ? ??? ???? ?? ???? ??? ? ?? ??? ????? ?????. ? ??? ????? ?? ?? ??, ?? ?? ?? ?? ?? ??? ?? ?????. HTTP 500 ??? ????? ?? ???? ??? ??? ???? ??? ???? ??? ???? ? ?? ????. ?? ?????? ??????? ?? ???? ???? ??? ?? ???? ???? ??? ??? ???. ??? ??? ???? ?? ??? ??? ?? ??? ? ?? ????. ??? ???? ?? ?? ??? ??? ????? ?? ????? ???? ?? ??? ?? ? ????. HTTP500 ??? ??? ?? ??? ?? ?? ???? ???? ??? ???? ?? ?? ?????. ?? ??
