Configuration

Tracing structuré

Runique expose un système de tracing opt-in par domaine via RuniqueLog. Chaque domaine s'active indépendamment — rien n'est loggué par défaut.

Activation rapide en développement

RuniqueApp::builder(config)
    .with_log(|l| l.dev())   // tout à DEBUG si DEBUG=true
    // ...

.dev() est un no-op si DEBUG n'est pas true — utilisable inconditionnellement.


Configuration granulaire

.with_log(|l| l
    .forms(|f| f
        .validate(Level::DEBUG)
        .finalize(Level::DEBUG)
    )
    .admin(|a| a
        .crud(Level::INFO)
        .auth(Level::WARN)
    )
    .auth(|a| a
        .login(Level::INFO)
        .reset(Level::WARN)
    )
    .mailer(|m| m.send(Level::INFO))
    .builder(|b| b
        .templates(Level::INFO)
        .middleware(Level::DEBUG)
        .routes(Level::INFO)
        .statics(Level::INFO)
    )
    .rate_limit(Level::WARN)
)

Domaines disponibles

forms — Pipeline formulaire

ChampMomentDonnées loggées
fieldEnregistrement d'un champnom, type, required
set_valueValeur assignée par fill()nom, valeur (password masqué)
validateRésultat de validationchamp, ok/error, nb global errors
renderRendu HTMLchamp, ok/error
finalizeHash/move fichierchamp, ok/error

admin — Panel admin

ChampMomentDonnées loggées
authVérification accès + CSRF failresource, action
crudDispatch + résultat create/edit/deleteresource, action, ok/error
listDispatch + résultat listeresource, rows, total, page
bulkActions de masseresource, action

auth — Authentification

ChampMomentDonnées loggées
loginCréation de sessionuser_id, username, is_superuser, exclusive, db_persist
resetFlux reset mot de passeemail, étape (token généré / email envoyé / invalide / ok / error)

mailer

ChampMomentDonnées loggées
sendEnvoi emailbackend, to, subject, ok/error

builder — Démarrage (one-time)

ChampMomentDonnées loggées
templatesChargement Terainternal, user, total
registryRessources admincount
middlewareStack middlewarecount + slot + name pour chaque entrée
routesRegistry URLcount
staticsFichiers statiquesstatic_url, static_dir, media_url, media_dir

Champs plats sur RuniqueLog

ChampMomentDonnées loggées
rate_limitRequête bloquéeip, retry_after
csrfToken CSRF détecté dans une URL GETpath
sessionOpérations session storeevent
dbRequêtes base de donnéesquery, duration
host_validationHôte rejetéhost

Erreurs inconditionnelles (toujours actives)

Indépendamment de la config tracing, certaines erreurs sont toujours loggées via tracing::error! :

  • Template invalide — si un template Tera échoue au chargement, le nom du template et l'erreur (avec numéro de ligne) sont loggués avant l'arrêt du démarrage.