<ph type="x-smartling-placeholder"></ph> Consulter le code source sur GitHub
Les journaux OpenThread sont contrôlés par de nombreuses constantes de configuration au moment de la compilation. Sauf indication contraire, ces constantes sont définies dans le fichier suivant:
openthread/src/core/config/logging.h
Méthodes de sortie
OpenThread prend en charge différentes méthodes de journalisation de sortie, définies comme
constante de configuration OPENTHREAD_CONFIG_LOG_OUTPUT
au moment de la compilation. La
les options de méthode de journalisation sont répertoriées dans le fichier suivant:
openthread/src/core/config/logging.h
La configuration par défaut de la sortie du journal est
OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED
La méthode de sortie est un exemple d'endroit où vous devrez peut-être mettre à jour le
constante de configuration au niveau de la plate-forme au lieu de la constante de base. Par exemple, pour
changer la méthode de sortie dans l'exemple d'application de simulation, modifier
openthread/examples/platforms/simulation/openthread-core-simulation-config.h
au lieu de
openthread/src/core/config/logging.h
Niveaux de journalisation
Les journaux peuvent générer différents niveaux d'informations, qui correspondent au temps de compilation
constante de configuration de OPENTHREAD_CONFIG_LOG_LEVEL
. Les options de niveau sont les suivantes :
répertoriés dans le fichier suivant:
openthread/include/openthread/platform/logging.h
La liste des niveaux de journalisation est également disponible dans la plate-forme Documentation de référence de l'API Logging Macros.
Le niveau de journalisation par défaut est OT_LOG_LEVEL_CRIT
, qui ne renvoie que les
les journaux critiques. Modifiez le niveau pour afficher plus de journaux si vous le souhaitez. Pour tout afficher
Pour les journaux OpenThread, utilisez OT_LOG_LEVEL_DEBG
.
Régions de journaux
Les régions de journal déterminent quelles zones du code OpenThread sont activées pour la journalisation. L'énumération de la région est définie dans le fichier suivant:
openthread/include/openthread/platform/logging.h
La liste des régions de journalisation est également disponible dans le tableau de bord Platform : Documentation de référence de l'API Logging Enumerations
Les régions de journaux sont couramment utilisées comme paramètres dans les fonctions de journal. Toutes les régions est activée par défaut.
Fonction de journalisation par défaut
La fonction par défaut pour la journalisation dans OpenThread est otPlatLog
, définie comme
la constante de configuration au moment de la compilation
OPENTHREAD_CONFIG_PLAT_LOG_FUNCTION
Voir l'API Platform Logging référence pour en savoir plus sur cette fonction.
Pour utiliser cette fonction directement dans les exemples d'applications OpenThread, utilisez le OT_REFERENCE_DEVICE
cmake. Par exemple, pour l'utiliser dans l'application CLI pour l'exemple CC2538:
./script/build -DOT_REFERENCE_DEVICE=ON
Vous pouvez également mettre à jour le fichier openthread/etc/cmake/options.cmake
pour l'activer par défaut lors de la compilation.
Activer les journaux
Avant d'activer les journaux, assurez-vous que votre environnement est configuré pour créer OpenThread. Voir Créer OpenThread pour plus d'informations.
Activer tous les journaux
Pour activer rapidement tous les niveaux de journalisation et toutes les régions, utilisez l'option cmake OT_FULL_LOGS
:
./script/build -DOT_FULL_LOGS=ON
Ce commutateur définit le niveau de journalisation sur OT_LOG_LEVEL_DEBG
et active toutes les régions
options.
Activer un niveau spécifique de journaux
Pour activer un niveau spécifique de journaux, modifiez openthread/src/core/config/logging.h
et mettez à jour
OPENTHREAD_CONFIG_LOG_LEVEL
au niveau souhaité, puis créez OpenThread. Pour
par exemple, pour activer les journaux jusqu'à OT_LOG_LEVEL_INFO
:
#define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_INFO
./script/build
Afficher les journaux dans syslog
Les journaux sont envoyés à syslog
par défaut. Sous Linux, il s'agit de /var/log/syslog.
.
- Créez l'exemple de simulation avec tous les journaux activés:
cd openthread
./script/cmake-build simulation -DOT_FULL_LOGS=ON
- Démarrez un nœud simulé:
./build/simulation/examples/apps/cli/ot-cli-ftd 1
- Dans une nouvelle fenêtre de terminal, configurez une sortie en temps réel des journaux OT:
tail -F /var/log/syslog | grep "ot-cli-ftd"
- Sur le nœud simulé, affichez Thread:
dataset init new
Donedataset
Active Timestamp: 1 Channel: 13 Channel Mask: 07fff800 Ext PAN ID: d63e8e3e495ebbc3 Mesh Local Prefix: fd3d:b50b:f96d:722d/64 Network Key: dfd34f0f05cad978ec4e32b0413038ff Network Name: OpenThread-8f28 PAN ID: 0x8f28 PSKc: c23a76e98f1a6483639b1ac1271e2e27 Security Policy: 0, onrcb Donedataset commit active
Doneifconfig up
Donethread start
Done
Revenez à la fenêtre de terminal exécutant la commande tail
. Les journaux doivent s'afficher en temps réel pour
le nœud simulé. Notez les balises de journal dans la sortie: [INFO]
, [DEBG]
, [NOTE]
. Ils correspondent tous
aux niveaux de journalisation. Par exemple, si vous remplacez le niveau de journalisation par OT_LOG_LEVEL_INFO
,
les journaux DEBG
disparaissent de la sortie.
ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: SrcAddrMatch - Cleared all entries ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Read NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ... ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x3eb, maccntr:0x3e8, mliid:05e4b515e33746c8} ot-cli-ftd[30055]: [1] [INFO]-CORE----: Notifier: StateChanged (0x7f133b) [Ip6+ Ip6- LLAddr MLAddr Rloc+ KeySeqCntr NetData Ip6Mult+ Channel PanId NetName ExtPanId MstrKey PSKc SecPolicy] ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: dataset panid ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: dataset commit active ot-cli-ftd[30055]: [1] [INFO]-MESH-CP-: Active dataset set ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: Idle mode: Radio sleeping ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: RadioPanId: 0x8f28 ot-cli-ftd[30055]: [1] [INFO]-CORE----: Notifier: StateChanged (0x007f0100) [KeySeqCntr Channel PanId NetName ExtPanId MstrKey PSKc SecPolicy] ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: ifconfig up ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: Idle mode: Radio receiving on channel 11 ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: thread start ot-cli-ftd[30055]: [1] [NOTE]-MLE-----: Role Disabled -> Detached ot-cli-ftd[30055]: [1] [INFO]-MLE-----: Attempt to become router ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Read NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ... ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x3eb, maccntr:0x3e8, mliid:05e4b515e33746c8} ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Saved NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ... ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x7d4, maccntr:0x7d0, mliid:05e4b515e33746c8} ot-cli-ftd[30055]: [1] [DEBG]-MLE-----: Store Network Information ot-cli-ftd[30055]: [1] [INFO]-MLE-----: Send Link Request (ff02:0:0:0:0:0:0:2)
Afficher les journaux dans l'application CLI
Les journaux peuvent être affichés directement dans l'application exemple de la CLI OpenThread.
- Modifiez le fichier de configuration de l'exemple de plate-forme et modifiez le journal
dans l'application. Pour l'exemple de simulation, il s'agit
openthread/examples/platforms/simulation/openthread-core-simulation-config.h
:#define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
- Créez l'exemple de simulation avec le niveau de journaux souhaité. Pour tout activer, procédez comme suit :
journaux:
./script/cmake-build simulation -DOT_FULL_LOGS=ON
- Démarrez un nœud simulé:
./build/simulation/examples/apps/cli/ot-cli-ftd 1
- Vous devriez voir la sortie du journal dans la même fenêtre que la CLI OpenThread que sont traitées.
Si vous avez ajouté une journalisation personnalisée et activé tous les journaux, le tampon de ligne de la CLI ou l'UART transmet
peut ne pas être assez grande pour gérer les journaux personnalisés supplémentaires. Si certains journaux ne sont pas
s'affichent au bon moment, essayez d'augmenter la taille de la ligne de la CLI
du tampon, défini comme OPENTHREAD_CONFIG_CLI_MAX_LINE_LENGTH
dans
/openthread/src/cli/cli_config.h
ou l'augmentation de la taille du tampon de transmission UART, défini comme
OPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE
dans le fichier de configuration de la plate-forme, par exemple
/src/nrf52840/openthread-core-nrf52840-config.h
Afficher les journaux d'un NCP
Les journaux d'un NCP peuvent être envoyés via wpantund
au syslog
d'un hôte. Pour une
Hôte Linux, il s'agit de /var/log/syslog.
Utilisez une valeur OPENTHREAD_CONFIG_LOG_OUTPUT
de
OPENTHREAD_CONFIG_LOG_OUTPUT_APP
pour activer la journalisation NCP. Modifier dans
le fichier de configuration de la plate-forme.
Par exemple, pour activer cette fonctionnalité sur un nrf52840 connecté à un hôte Linux:
- Modifiez le fichier de configuration de la plate-forme et remplacez la sortie du journal par
l'application. Pour nrf52840, il s'agit
./src/nrf52840/openthread-core-nrf52840-config.h
dans le dépôt ot-nrf528xx:#define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
- Créez l'exemple nrf52840 avec le niveau de journaux souhaité et d'autres
indicateurs spécifiques au NCP. Pour créer une jointure avec tous les journaux activés:
./script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON
Flashez le NCP, connectez-le à l'hôte Linux et démarrez
wpantund
en tant que détaillé dans le dépôt wpantund.Une fois que le protocole NCP s'exécute, vérifiez le fichier
syslog
sur la machine Linux:tail -F /var/log/syslog | grep "wpantund"
Vous devriez voir les journaux OpenThread s'afficher en temps réel pour le NCP. Vous pouvez également dans la sortie
wpantund
.
Modifier le niveau de journalisation au moment de l'exécution
Les niveaux de journalisation peuvent être modifiés au moment de l'exécution si le contrôle dynamique du niveau de journalisation est activé.
- Créez l'application avec l'option
-DOT_LOG_LEVEL_DYNAMIC=ON
. Par exemple,
../script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON -DOT_LOG_LEVEL_DYNAMIC=ON
- Modifiez le niveau de journalisation en fonction de votre implémentation:
<ph type="x-smartling-placeholder">
- </ph>
- Pour un système sur une puce (SoC), utilisez l'API Logging dans votre Application OpenThread.
- Pour un NCP, utilisez
wpanctl
sur la ligne de commande. Consultezwpan-properties.h
dans le dépôtwpantund
pour connaître toutes les propriétés exposées àwpanctl
et à l'API Spinel pour ses définitions de niveau de journalisation.wpanctl set OpenThread:LogLevel 5