<?php

declare(strict_types=1);

namespace Fennec\Logger;

/**
 * Contrat de journalisation, inspiré de PSR-3 (5 niveaux plutôt que les 8 complets).
 */
interface LoggerInterface
{
    /** @param array<string, mixed> $context */
    public function debug(string $message, array $context = []): void;

    /** @param array<string, mixed> $context */
    public function info(string $message, array $context = []): void;

    /** @param array<string, mixed> $context */
    public function warning(string $message, array $context = []): void;

    /** @param array<string, mixed> $context */
    public function error(string $message, array $context = []): void;

    /** @param array<string, mixed> $context */
    public function critical(string $message, array $context = []): void;
}
