Im Moment habe ich mehreren Projekte, die ich mit dem PHP-Framework Laravel umgesetze. Laravel bietet mir unter anderem hervorragende Grundlagen um APIs, mit einer ORM gemappten Datenbank und der dazugehörigen Geschäftslogik umzusetzen. PHPUnit-Tests sind bereits vorkonfiguriert, so dass man sofort loslegen kann seine APIs testgetrieben zu entwickeln.
Standardmäßig werden alle Logs die durch die Anwendung erzeugt werden in „laravel/storage/log/laravel.log“ gespeichert.
\Log::info('IMPORT - START');
Nutze ich oben stehenden Code in einem Controller oder einem Laravel-Command wird immer in die Standard-Log-Datei geloggt, auch wenn ein PHPUnit-Test läuft.
Mit folgender Ergänzung in der Datei „laravel/test/TestCase.php“ werden bei Tests die Log-Ausgaben aller Tests nach „laravel/storage/log/test.log“ gespeichert.
//add this to createApplication(), directly before the return \Log::getMonolog()->popHandler();//remove default Log-Handler \Log::useFiles(storage_path().'/logs/test.log');//set new Log-Handler