CakePHP - Rejestrowanie
Logowanie do CakePHP jest bardzo łatwym zadaniem. Musisz tylko użyć jednej funkcji. Możesz rejestrować błędy, wyjątki, działania użytkowników, działania podjęte przez użytkowników, dla dowolnego procesu w tle, takiego jak cronjob. Logowanie danych w CakePHP jest łatwe. Funkcja log () jest udostępniana przez LogTrait, który jest wspólnym przodkiem dla prawie wszystkich klas CakePHP.
Konfiguracja dziennika
Możemy skonfigurować plik logowania config/app.php. W pliku znajduje się sekcja dziennika, w której można skonfigurować opcje rejestrowania, jak pokazano na poniższym zrzucie ekranu.
Domyślnie zobaczysz dwa poziomy dziennika - error i debugjuż skonfigurowane dla Ciebie. Każdy będzie obsługiwał inny poziom wiadomości.
CakePHP obsługuje różne poziomy logowania, jak pokazano poniżej -
Emergency - System nie nadaje się do użytku
Alert - Działania należy podjąć natychmiast
Critical - Warunki krytyczne
Error - Warunki błędów
Warning - Warunki ostrzegawcze
Notice - Stan normalny, ale znaczący
Info - Wiadomości informacyjne
Debug - Komunikaty na poziomie debugowania
Zapis do pliku dziennika
Istnieją dwa sposoby zapisu w pliku dziennika.
Pierwszym jest użycie statycznego write()metoda. Poniżej przedstawiono składnię staticwrite() metoda.
Składnia | write (integer | string $ level , mixed $ message , string | array $ context []) |
---|---|
Parametry | Poziom ważności pisanej wiadomości. Wartość musi być liczbą całkowitą lub łańcuchem pasującym do znanego poziomu. Treść wiadomości do logowania. Dodatkowe dane, które mają być używane do logowania wiadomości. Można przekazać specjalny klucz zakresu w celu dalszego filtrowania używanych silników dziennika. Jeśli przekazany zostanie łańcuch lub tablica indeksów numerycznych, będzie on traktowany jako klucz zakresu. WidziećCake\Log\Log::config() aby uzyskać więcej informacji na temat zakresów rejestrowania. |
Zwroty | boolean |
Opis | Zapisuje podany komunikat i typ do wszystkich skonfigurowanych adapterów dziennika. Do skonfigurowanych adapterów przekazywane są zmienne $ level i $ message. $ poziom jest jednym z następujących ciągów / wartości. |
Drugim jest użycie log() shortcut funkcja dostępna na każdym używającym LogTrait Rejestr połączeń () wywoła wewnętrzne połączenie Log::write() -
Przykład
Wprowadź zmiany w config/routes.php plik, jak pokazano w następującym programie.
config/routes.php
<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
//$builder->connect('/pages',
['controller'=>'Pages','action'=>'display', 'home']);
$builder->connect('logex',['controller'=>'Logexs','action'=>'index']);
$builder->fallbacks();
});
Stwórz LogexsController.php plik w src/Controller/LogexsController.php. Skopiuj następujący kod w pliku kontrolera.
src/Controller/LogexsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\Log\Log;
class LogexsController extends AppController{
public function index(){
/*The first way to write to log file.*/
Log::write('debug',"Something didn't work.");
/*The second way to write to log file.*/
$this->log("Something didn't work.",'debug');
}
}
?>
Utwórz katalog Logexs w src/Template iw tym katalogu utwórz plik Viewplik o nazwie index.php. Skopiuj następujący kod w tym pliku.
src/Template/Logexs/index.php
Something is written in log file. Check log file logs\debug.log
Wykonaj powyższy przykład, odwiedzając następujący adres URL.
http: // localhost / cakephp4 / logex
Wynik
Po wykonaniu otrzymasz następujące dane wyjściowe.
Dzienniki zostaną dodane do pliku log / debug.log -