Laravel Packages

Laravel Log Fake 2.0

Published
Laravel Log Fake 2.0 image

Laravel Log Fake released v2.0 with support for Laravel 9 and a completely closure-based assertion API:

The Log fake package is an excellent way to ensure critical logging happens through testing assertions. As a basic example from the readme, you first bind the LogFake instance, and then you can assert logging:

LogFake::bind();
 
// Run test code
 
// Logging assertions
Log::assertLogged(fn (LogEntry $log) =>
$log->level === 'info'
&& $log->message === 'User logged in.'
&& $log->context === ['user_id' => 5]
);

Also new in v2.0 are the dd() and dump() helpers to debug log messages during a test:

Log::dump();
// array:1 [
// 0 => array:4 [
// "level" => "info"
// "message" => "User logged in."
// "context" => []
// "channel" => "stack"
// ]
// ]
 
Log::channel('slack')->dump();
 
Log::dumpAll();
 
Log::dd();
Log::ddAll();

You can also inspect logging and write assertions around them using various logs() helpers:

$logs = Log::allLogs();
 
assert($logs->count() === 2);
 
$logs = Log::allLogs();
assert($logs->count() === 2);

Lastly, along with Laravel 9.12's per-channel logging context API, the Log Fake package can also assert context:

Log::assertCurrentContext(
fn (array $context) => $context['app'] === 'Acme CRM')
);

Be sure the check out the available assertions to see the complete log assertion API available. You can learn more about this package, get full installation instructions, and view the source code on GitHub.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article