Examples
Real-world code samples for WPZylos Logger.
Application Logging
Service Class
class PaymentService
{
public function __construct(
private Logger $logger
) {}
public function processPayment(Order $order): PaymentResult
{
$this->logger->info('Processing payment', [
'order_id' => $order->id,
'amount' => $order->total,
'gateway' => $order->payment_method,
]);
try {
$result = $this->gateway->charge($order);
$this->logger->info('Payment successful', [
'order_id' => $order->id,
'transaction_id' => $result->transactionId,
]);
return $result;
} catch (PaymentFailedException $e) {
$this->logger->error('Payment failed', [
'order_id' => $order->id,
'error' => $e->getMessage(),
'code' => $e->getCode(),
]);
throw $e;
}
}
}
API Logging
class ApiController
{
public function handleRequest(Request $request): Response
{
$this->logger->info('API request received', [
'method' => $request->method(),
'path' => $request->path(),
'ip' => $request->ip(),
]);
$startTime = microtime(true);
try {
$response = $this->process($request);
$this->logger->info('API request completed', [
'status' => $response->status(),
'duration_ms' => (microtime(true) - $startTime) * 1000,
]);
return $response;
} catch (\Exception $e) {
$this->logger->error('API request failed', [
'exception' => get_class($e),
'message' => $e->getMessage(),
'duration_ms' => (microtime(true) - $startTime) * 1000,
]);
throw $e;
}
}
}
Cron Job Logging
class DailyCleanupJob
{
public function handle(): void
{
$this->logger->info('Daily cleanup started');
$deleted = $this->cleanOldRecords();
$this->logger->info('Old records cleaned', ['count' => $deleted]);
$optimized = $this->optimizeTables();
$this->logger->info('Tables optimized', ['tables' => $optimized]);
$this->logger->info('Daily cleanup completed');
}
private function cleanOldRecords(): int
{
try {
$count = DB::table('logs')
->where('created_at', '<', date('Y-m-d', strtotime('-30 days')))
->delete();
return $count;
} catch (\Exception $e) {
$this->logger->error('Failed to clean old records', [
'exception' => $e->getMessage(),
]);
return 0;
}
}
}
User Activity Logging
class UserActivityLogger
{
public function logLogin(WP_User $user): void
{
$this->logger->info('User logged in', [
'user_id' => $user->ID,
'username' => $user->user_login,
'ip' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown',
]);
}
public function logLogout(int $userId): void
{
$this->logger->info('User logged out', [
'user_id' => $userId,
]);
}
public function logFailedLogin(string $username): void
{
$this->logger->warning('Failed login attempt', [
'username' => $username,
'ip' => $_SERVER['REMOTE_ADDR'],
]);
}
}