Journalisation et diagnostic
AppPorts dispose d'un système de journalisation intégré qui enregistre les événements clés, les opérations de migration, les informations système et les détails d'erreur pendant l'exécution de l'application. En cas de problèmes, vous pouvez exporter un package de diagnostic et le soumettre sur la page Issues du projet pour le dépannage.
Contenu journalisé
Informations de session de démarrage
Les informations suivantes sont enregistrées à chaque démarrage de l'application :
| Élément | Description |
|---|---|
| ID de session | Identifiant unique pour cette exécution (préfixe UUID de 8 caractères) |
| ID de processus | Identifiant de processus système |
| Bundle ID | Identifiant de l'application |
| Langue de l'application | Code de langue actuellement sélectionné |
| Paramètres régionaux système | Identifiant des paramètres régionaux système |
| Fuseau horaire | Identifiant du fuseau horaire actuel |
| Liste de langues préférées | Ordre des langues préférées du système |
Informations de diagnostic système
| Élément | Description |
|---|---|
| Version de l'application | Numéro de version et numéro de build |
| Version de macOS | Version du système et nom commercial (par ex., « macOS Sequoia 15.x ») |
| Modèle de l'appareil | Modèle et nom convivial (par ex., « MacBook Pro (14 pouces, M3 Pro, 2023) ») |
| Informations processeur | Chaîne de marque, nombre de cœurs, nombre de cœurs actifs |
| Mémoire physique | Mémoire totale |
Informations de stockage externe
Enregistrées lors de la sélection d'un volume de stockage externe :
| Élément | Description |
|---|---|
| Nom du volume | Nom du volume de stockage |
| Capacité totale / Espace disponible | Informations d'espace de stockage |
| Format du système de fichiers | Par ex., APFS, HFS+, exFAT, etc. |
| Protocole d'interface | USB, Thunderbolt, NVMe/SATA |
| Vitesse de l'appareil | Informations de taux de transfert |
| Taille de bloc | Taille de bloc de stockage |
| UUID du volume | Identifiant unique du volume de stockage |
Événements d'opération de migration
Chaque opération de migration génère un ID d'opération unique (par ex., data-migrate-ABCD1234), enregistrant :
- Début et fin de l'opération
- Progression de chaque étape (copie, suppression du répertoire original, création du lien symbolique, annulation)
- Instantanés de l'état du chemin avant et après les étapes (existence, permissions, taille, cible du symlink, drapeau immuable)
- Détection de données de migration résiduelles et récupération automatique
- Progression de la copie de fichiers, erreurs et réessais
Rapports de performance de migration
| Élément | Description |
|---|---|
| Nom de l'application | Nom de l'application migrée |
| Taille des données | Volume de données migré |
| Durée | Durée de la migration (secondes) |
| Vitesse de transfert | Taux de transfert (Mo/s) |
| Chemin source / Chemin de destination | Chemins de début et fin de la migration |
Détails des erreurs
Les journaux d'erreur contiennent des informations structurées :
| Champ | Description |
|---|---|
| Description de l'erreur | Description d'erreur lisible par l'humain |
| Type / Domaine / Code d'erreur | Informations structurées NSError |
| Raison de l'échec | Raison détaillée de l'échec |
| Suggestion de récupération | Suggestion de récupération fournie par le système |
| Chemin du fichier | Chemin du fichier affecté |
| Erreur sous-jacente | Erreur imbriquée enregistrée récursivement |
Résumé des opérations
Chaque opération de migration génère un OperationSummaryRecord, conservant les 100 enregistrements les plus récents :
| Champ | Description |
|---|---|
operationID | Identifiant unique de l'opération |
category | Catégorie d'opération (app_move, data-migrate, file-copy, etc.) |
result | Résultat (success, failed, rolled_back, success_with_warning) |
errorCode | Code d'erreur (le cas échéant) |
startedAt / endedAt | Heure de début et de fin |
durationMs | Durée (millisecondes) |
Configuration des journaux
Emplacement de stockage
Chemin par défaut du journal :
~/Library/Application Support/AppPorts/AppPorts_Log.txtPeut être personnalisé via :
- Barre de menus → Journaux → Définir l'emplacement du journal
- Réglages → Réglages de journalisation → Chemin personnalisé
Format du journal
[2026-05-08 09:30:00] [INFO] [session:a1b2c3d4] [pid:12345] Application démarrée
[2026-05-08 09:30:01] [DIAG] [session:a1b2c3d4] [pid:12345] app_version: 1.6.1 (123)
[2026-05-08 09:30:05] [PERF] [session:a1b2c3d4] [pid:12345] Migration terminée : 2.3 Go, 45.2 Mo/s, 52.1sNiveaux de journal
| Niveau | Description |
|---|---|
INFO | Informations générales |
ERROR | Informations d'erreur (avec détails d'erreur structurés) |
DIAG | Informations de diagnostic système |
DISK | Informations de volume de stockage externe |
PERF | Rapport de performance de migration |
TRACE | État de chemin de bas niveau et surveillance de dossiers |
DEBUG | Informations de débogage (calcul de taille, vérifications de répertoires imbriqués) |
WARN | Avertissements (données de migration résiduelles, mode de récupération) |
Rotation des journaux
- Taille maximale par défaut : 2 Mo (configurable : 1 Mo, 5 Mo, 10 Mo, 50 Mo, 100 Mo)
- Troncation automatique en cas de dépassement : Supprime la moitié la plus ancienne des lignes, conserve la moitié la plus récente
Exporter le package de diagnostic
Lorsque des problèmes nécessitent un retour, veuillez exporter un package de diagnostic et le joindre à l'Issue.
Méthodes d'exportation
Méthode 1 : Barre de menus
- Cliquer sur Barre de menus → Journaux → Exporter le package de diagnostic
- Choisir l'emplacement de sauvegarde
- Le système génère automatiquement un fichier
.zipet l'ouvre dans le Finder
Méthode 2 : Page des réglages
- Ouvrir AppPorts → Réglages (coin supérieur droit)
- Trouver la section « Réglages de journalisation »
- Cliquer sur le bouton « Exporter le package de diagnostic »
- Choisir l'emplacement de sauvegarde
Contenu du package de diagnostic
Le fichier AppPorts-Diagnostic-<datetime>.zip exporté contient :
| Fichier | Format | Description |
|---|---|---|
diagnostic-summary.json | JSON | Métadonnées (ID de session, version, paramètres régionaux, fuseau horaire, etc.) |
diagnostic-summary.txt | Texte brut | Résumé de diagnostic lisible par l'humain |
recent-operations.json | JSON | 100 enregistrements d'opérations les plus récents |
recent-failures.json | JSON | 20 opérations échouées/avec avertissement les plus récentes |
AppPorts_Log.share-safe.txt | Texte brut | Journal complet (révisé) |
Protection de la vie privée
Les fichiers journaux du package de diagnostic sont révisés :
| Contenu original | Remplacé par |
|---|---|
Chemin du répertoire personnel de l'utilisateur (par ex., /Users/john) | /Users/<redacted-user> |
Nom du volume de stockage externe (par ex., /Volumes/MyDrive) | /Volumes/<redacted-volume> |
Chemin complet $HOME | ~ |
Soumettre des Issues
Après avoir obtenu le package de diagnostic, suivez ces étapes pour soumettre :
- Visiter la page Issues du projet
- Cliquer sur « New Issue », sélectionner le modèle de rapport de bug
- Décrire le problème et les étapes de reproduction
- Glisser le fichier
.zipde diagnostic dans la zone de pièce jointe pour télécharger - Soumettre l'Issue
💡 Améliorer l'efficacité des retours
Soumettre des Issues avec des packages de diagnostic peut accélérer significativement la résolution des problèmes. Le package de diagnostic contient l'historique complet des opérations, les détails d'erreur et les informations d'environnement système, permettant aux développeurs de reproduire et analyser les problèmes sans communication répétée.
