PHP code example of checklogs / php-sdk

1. Go to this page and download the library: Download checklogs/php-sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

checklogs / php-sdk example snippets




heckLogs\CheckLogsLogger;
use CheckLogs\LogLevel;

// Créer un logger
$logger = new CheckLogsLogger('votre-cle-api');

// Logger des messages
$logger->info('Application démarrée');
$logger->error('Erreur de connexion', ['code' => 500]);



use function CheckLogs\{createLogger, quickLog, quickError};

// Fonction rapide pour créer un logger
$logger = createLogger('votre-cle-api');

// Logs rapides
quickLog('votre-cle-api', 'Message rapide');
quickError('votre-cle-api', 'Erreur rapide');

$logger = new CheckLogsLogger('votre-cle-api', [
    'source' => 'mon-app',                    // Source par défaut
    'defaultContext' => ['env' => 'prod'],    // Contexte par défaut
    'consoleOutput' => true,                  // Afficher aussi en console
    'timeout' => 5000,                        // Timeout en ms
]);

$logger->debug('Message de debug');
$logger->info('Information générale');
$logger->warning('Attention');
$logger->error('Erreur');
$logger->critical('Erreur critique');

$mainLogger = createLogger('api-key', [
    'defaultContext' => ['service' => 'api']
]);

$userLogger = $mainLogger->child(['module' => 'user']);
$orderLogger = $mainLogger->child(['module' => 'order']);

// Chaque child hérite du contexte parent
$userLogger->info('Utilisateur créé');  // Context: service=api, module=user
$orderLogger->error('Commande échouée'); // Context: service=api, module=order

// Mesurer le temps d'exécution
$endTimer = $logger->time('db-query', 'Requête base de données');

// ... votre code ...

$duration = $endTimer(); // Log automatique avec la durée
echo "Opération: {$duration}ms";

use function CheckLogs\{
    measureExecutionTime,
    createRequestLogger,
    setupGlobalErrorHandling,
    formatMessage
};

// Mesurer une fonction
$result = measureExecutionTime(function() {
    // Votre code
    return "résultat";
}, $logger, 'mon-operation');

// Logger pour requêtes HTTP
$requestLogger = createRequestLogger('api-key', 'POST', '/api/users');

// Gestion globale des erreurs
setupGlobalErrorHandling($logger);

// Template de messages
$message = formatMessage('Utilisateur {user_id} a effectué {action}', [
    'user_id' => 123,
    'action' => 'connexion'
]);

use CheckLogs\{ApiError, NetworkError, ValidationError};

try {
    $logger->info('Test');
} catch (ValidationError $e) {
    echo "Erreur de validation: " . $e->getMessage();
} catch (ApiError $e) {
    echo "Erreur API: " . $e->getStatusCode();
    
    if ($e->isAuthError()) {
        echo "Problème d'authentification";
    }
} catch (NetworkError $e) {
    echo "Erreur réseau: " . $e->getMessage();
}

// Obtenir des statistiques
$stats = $logger->getStats();
$errorRate = $logger->getErrorRate();
$summary = $logger->getSummary();

echo "Total logs: " . $stats['data']['total_logs'];
echo "Taux d'erreur: " . $errorRate['data']['rate'] . "%";

// Dans un Service Provider
use CheckLogs\CheckLogsLogger;

$this->app->singleton(CheckLogsLogger::class, function ($app) {
    return new CheckLogsLogger(config('services.checklogs.api_key'), [
        'source' => config('app.name'),
        'defaultContext' => ['env' => config('app.env')]
    ]);
});

// Dans un Controller
public function store(Request $request, CheckLogsLogger $logger)
{
    $logger->info('Création utilisateur', $request->only(['email']));
    // ...
}

// Dans services.yaml
services:
    CheckLogs\CheckLogsLogger:
        arguments:
            $apiKey: '%env(CHECKLOGS_API_KEY)%'
            $options:
                source: '%kernel.project_dir%'

// Dans un Controller
public function create(CheckLogsLogger $logger)
{
    $logger->info('Action create appelée');
    // ...
}


CheckLogs\CheckLogsLogger;
use function CheckLogs\{setupGlobalErrorHandling, createRequestLogger};

// Logger principal
$logger = new CheckLogsLogger('votre-cle-api', [
    'source' => 'mon-site',
    'consoleOutput' => true
]);

// Configuration globale des erreurs
setupGlobalErrorHandling($logger);

// Logger pour chaque requête
$requestLogger = createRequestLogger(
    'votre-cle-api',
    $_SERVER['REQUEST_METHOD'],
    $_SERVER['REQUEST_URI'],
    ['user_ip' => $_SERVER['REMOTE_ADDR']]
);

$requestLogger->info('Requête reçue');

try {
    // Votre logique applicative
    processRequest();
    $requestLogger->info('Requête traitée avec succès');
    
} catch (Exception $e) {
    $requestLogger->error('Erreur lors du traitement', [
        'error' => $e->getMessage(),
        'trace' => $e->getTraceAsString()
    ]);
}

$logger = new CheckLogsLogger($_ENV['CHECKLOGS_API_KEY'], [
    'baseUrl' => $_ENV['CHECKLOGS_BASE_URL'] ?? 'https://api.checklogs.dev',
    'timeout' => (int)($_ENV['CHECKLOGS_TIMEOUT'] ?? 5000)
]);

use function CheckLogs\{configureGlobalLogger, getGlobalLogger, globalLog};

// Configurer une seule fois
configureGlobalLogger('votre-cle-api', [
    'source' => 'global-app',
    'consoleOutput' => true
]);

// Utiliser partout dans l'application
$logger = getGlobalLogger();
$logger->info('Message depuis le logger global');

// Ou directement
globalLog('info', 'Message direct');

   use CheckLogs\CheckLogsLogger;
   $logger = new CheckLogsLogger('votre-cle-api');
   $logger->info('Hello CheckLogs!');
   
bash
composer