Skip to content

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 paquet 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émentDescription
ID de sessionIdentifiant unique pour cette exécution (préfixe UUID de 8 caractères)
ID de processusIdentifiant de processus système
Bundle IDIdentifiant de l'application
Langue de l'applicationCode de langue actuellement sélectionné
Paramètres régionaux systèmeIdentifiant des paramètres régionaux système
Fuseau horaireIdentifiant du fuseau horaire actuel
Liste de langues préféréesOrdre des langues préférées du système

Informations de diagnostic système ​

ÉlémentDescription
Version de l'applicationNuméro de version et numéro de build
Version de macOSVersion du système et nom commercial (par ex., « macOS Sequoia 15.x »)
Modèle de l'appareilModèle et nom convivial (par ex., « MacBook Pro (14-inch, M3 Pro, 2023) »)
Informations processeurChaîne de marque, nombre de cœurs, nombre de cœurs actifs
Mémoire physiqueMémoire totale

Informations de stockage externe ​

Enregistrées lors de la sélection d'un volume de stockage externe :

ÉlémentDescription
Nom du volumeNom du volume de stockage
Capacité totale / Espace disponibleInformations d'espace de stockage
Format du système de fichiersPar ex., APFS, HFS+, exFAT, etc.
Protocole d'interfaceUSB, Thunderbolt, NVMe/SATA
Vitesse de l'appareilInformations de taux de transfert
Taille de blocTaille de bloc de stockage
UUID du volumeIdentifiant 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émentDescription
Nom de l'applicationNom de l'application migrée
Taille des donnéesVolume de données migré
DuréeDurée de la migration (secondes)
Vitesse de transfertTaux de transfert (MB/s)
Chemin source / Chemin de destinationChemins de début et fin de la migration

Détails des erreurs ​

Les journaux d'erreur contiennent des informations structurées :

ChampDescription
Description de l'erreurDescription d'erreur lisible par l'humain
Type / Domaine / Code d'erreurInformations structurées NSError
Code d'erreurCode d'erreur interne AppPorts (voir tableau ci-dessous)
Raison de l'échecRaison détaillée de l'échec
Suggestion de récupérationSuggestion de récupération fournie par le système
Chemin du fichierChemin du fichier affecté
Chemins associésChemins d'applications associés à l'opération (relatedURLs)
Erreur sous-jacenteErreur imbriquée enregistrée récursivement

Codes d'erreur ​

Code d’erreurSignification
BACKUP-SIGNATURE-FAILEDÉchec de la sauvegarde de signature
APP-MOVE-DESTINATION-CONFLICTLa destination de migration de l’application existe déjà et son remplacement ne peut pas être confirmé comme sûr
APP-RESTORE-LOCAL-CONFLICTUn élément local de même nom ne peut pas être écrasé automatiquement lors du retour sur le Mac
DATA-MIGRATE-DESTINATION-CONFLICTLa destination de migration du répertoire existe déjà et ses métadonnées ne correspondent pas entièrement
RESIGN-FAILEDÉchec de la nouvelle signature ; l’application peut échouer à la vérification de signature de macOS
DATA-RESIGN-FAILEDÉchec de la nouvelle signature automatique après migration du répertoire de données
RESIGN-REFUSED-SANDBOXEDNouvelle signature refusée pour une application en bac à sable
RESTORE-SIGNATURE-IDENTITY-UNAVAILABLECertificat de signature d’origine absent de ce Mac ; restauration refusée
CONTAINER-MOUNT-*Échec à une étape de migration par montage, par exemple CONTAINER-MOUNT-EXTERNAL-NOT-APFS ou CONTAINER-MOUNT-SWITCH-FAILED
CONTAINER-RESTORE-*Échec à une étape de restauration d’un répertoire migré par montage
DATA-BACKUP-SIGNATURE-FAILEDÉchec de la sauvegarde de signature avant migration du répertoire de données ; une restauration ultérieure ne pourra pas utiliser l’identité d’origine

Contexte des opérations de répertoire de données ​

Les opérations sur les répertoires de données (migration, restauration, normalisation, re-liage) incluent automatiquement les informations de contexte de l'application associée dans les journaux :

ChampDescription
app_nameNom de l'application associée
app_statusStatut de l'application (« Lié », « Local », etc.)
app_is_resignedSi l'application a été re-signée
app_bundle_idBundle ID de l'application (lu depuis le vrai chemin)
app_real_pathVrai chemin externe de l'application

Résumé des opérations ​

Chaque opération de migration génère un OperationSummaryRecord, conservant les 100 enregistrements les plus récents :

ChampDescription
operationIDIdentifiant unique de l'opération
categoryCatégorie d'opération (app_move, data-migrate, file-copy, etc.)
resultRésultat (success, failed, rolled_back, success_with_warning)
errorCodeCode d'erreur (le cas échéant)
startedAt / endedAtHeure de début et de fin
durationMsDurée (millisecondes)

Configuration des journaux ​

Emplacement de stockage ​

Chemin par défaut du journal :

text
~/Library/Application Support/AppPorts/AppPorts_Log.txt

Peut être personnalisé via :

  • Barre de menus → Journaux → Définir l'emplacement du journal...
  • Paramètres → Paramètres du journal → chemin personnalisé

Format du journal ​

text
[2026-05-08 09:30:00] [INFO] [session:a1b2c3d4] [pid:12345] 应用启动
[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]   迁移完成: 2.3 GB, 45.2 MB/s, 52.1s

Niveaux de journal ​

NiveauDescription
INFOInformations générales
ERRORInformations d'erreur (avec détails d'erreur structurés)
DIAGInformations de diagnostic système
DISKInformations de volume de stockage externe
PERFRapport de performance de migration
TRACEÉtat de chemin de bas niveau et surveillance de dossiers
DEBUGInformations de débogage (calcul de taille, vérifications de répertoires imbriqués)
WARNAvertissements (données de migration résiduelles, mode de récupération)

Rotation des journaux ​

  • Taille maximale par défaut : 2 MB (configurable : 1 MB, 5 MB, 10 MB, 50 MB, 100 MB)
  • Troncation automatique en cas de dépassement : Supprime la moitié la plus ancienne des lignes, conserve la moitié la plus récente

Exporter le paquet de diagnostic ​

Lorsque des problèmes nécessitent un retour, veuillez exporter un paquet de diagnostic et le joindre à l'Issue.

Méthodes d'exportation ​

Méthode 1 : Barre de menus

  1. Cliquer sur Barre de menus → Journaux → Exporter le paquet de diagnostic
  2. Choisir l'emplacement de sauvegarde
  3. Le système génère automatiquement un fichier .zip et l'ouvre dans le Finder

Méthode 2 : Page des réglages

  1. Ouvrir AppPorts → Paramètres (coin supérieur droit)
  2. Trouver la section « Paramètres du journal »
  3. Cliquer sur le bouton « Exporter le paquet de diagnostic »
  4. Choisir l'emplacement de sauvegarde

Contenu du paquet de diagnostic ​

Le fichier AppPorts-Diagnostic-<日期时间>.zip exporté contient :

FichierFormatDescription
diagnostic-summary.jsonJSONMétadonnées (ID de session, version, paramètres régionaux, fuseau horaire, etc.)
diagnostic-summary.txtTexte brutRésumé de diagnostic lisible par l'humain
recent-operations.jsonJSON100 enregistrements d'opérations les plus récents
recent-failures.jsonJSON20 opérations échouées/avec avertissement les plus récentes
AppPorts_Log.share-safe.txtTexte brutJournal complet (anonymisé)

Protection de la vie privée ​

Les fichiers journaux du paquet de diagnostic sont anonymisés :

Contenu originalRemplacé 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 paquet de diagnostic, suivez ces étapes pour soumettre :

  1. Visiter la page Issues du projet
  2. Cliquer sur « New Issue », sélectionner le modèle de rapport de bug
  3. Décrire le problème et les étapes de reproduction
  4. Glisser le fichier .zip de diagnostic dans la zone des pièces jointes pour le joindre
  5. Soumettre l'Issue

💡 Améliorer l'efficacité des retours

Soumettre des Issues avec des paquets de diagnostic peut accélérer significativement la résolution des problèmes. Le paquet 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.

最近更新