Envoyer un journal au centre de contrôle (LCC.log)
Déclaration
LCC.log(id, ...)
LCC.log(log_map)
Paramètres
- id
Type entier, de 1 à 6, correspondant aux six canaux de journal du centre de contrôle - ...
Paramètres variables : chaîne, table,
ImageObjectou objet d'état renvoyé parLCC.capture_ui_state(); une table ordinaire est sérialisée partable.deep_dump, et une chaîne peut utiliser les espaces réservés[DATE]et[LINE] - log_map
Type table, dont les clés sont les alias de journal (à configurer avec
set_log_aliases) et dont les valeurs peuvent être une chaîne, une table, unImageObject, un objet d'état d'interface ou un tableau contenant ces éléments
Valeur de retour
- Aucune
Description
Avant l'envoi, vérifie qu'une adresse du centre de contrôle est configurée et lève une erreur si ce n'est pas le cas.
En cas d'anomalie réseau, réessaie en boucle jusqu'à la réussite et affiche une indication viasys.toastpendant les tentatives.
Avec une table d'alias, n'envoie que les clés qui correspondent à un alias et les écrit dans la colonne associée à cet alias.
Si aucune clé ne correspond à la table d'alias, cet appel n'envoie aucune demande.
Exemple
LCC.log(1, "[DATE] 开始同步", { count = 128 })
LCC.log({
["状态"] = "同步完成",
["错误"] = "0"
})
Journaux avec images
LCC.log accepte un mélange de texte, de tables ordinaires et d'images. Lorsqu'un ImageObject est fourni, il est écrit par défaut au format PNG ; une chaîne de la forme data:image/png;base64,... ou data:image/jpeg;base64,... est également reconnue automatiquement comme une image.
LCC.log(1, "开始", screen.image(100, 100, 200, 200), "结束")
Pour réduire le volume transmis, vous pouvez compresser vous-même l'image en data URL JPEG avant de la fournir :
local img = screen.image(100, 100, 200, 200)
local jpg = "data:image/jpeg;base64," .. img:jpeg_data(0.7):base64_encode()
LCC.log(1, "压缩截图", jpg)
img:destroy()
Le format table d'alias accepte également les journaux avec images. Une table ordinaire sans image est toujours rendue par table.deep_dump ; lorsqu'un tableau contient une image, les contenus texte-image sont rendus dans l'ordre du tableau.
LCC.set_log_aliases({ "状态", "错误" })
LCC.log({
["状态"] = { "你好", screen.image(243, 247, 336, 345), "世界" },
["错误"] = "0"
})
Les journaux avec images conviennent surtout au diagnostic ou à l'enregistrement d'un état important, et non à un journal de progression courant. Une image ne doit pas dépasser 20 MiB, le total des images d'une entrée ne doit pas dépasser 20 MiB, une image ne doit pas dépasser 12 millions de pixels et chaque entrée accepte au plus 8 images ; LCC.log lève directement une erreur si une limite est dépassée ou si le format n'est pas pris en charge. Les images sont téléversées avec la demande de journal ; lorsque de nombreux appareils, de grandes zones de capture ou une sortie très fréquente sont concernés, elles augmentent fortement la charge de transmission sur le réseau local, de décodage du serveur et d'écriture sur disque, ce qui peut ralentir les autres demandes de contrôle. Enregistrez donc les captures aux étapes importantes et recadrez-les autant que possible sur la zone à observer ; pour un échantillonnage continu, réduisez de préférence la fréquence ou compressez vous-même les images en data URL JPEG.
Journaux d'état de l'interface
LCC.log peut recevoir l'objet renvoyé par LCC.capture_ui_state() comme paramètre de contenu ou comme valeur d'une table d'alias. L'objet d'état n'est pas lui-même une table d'alias : un canal de journal doit être indiqué ; LCC.log(state) lève une erreur de paramètre. LCC.capture_ui_state() nécessite ui_element 0.6.0 ou une version ultérieure sur l'appareil ; si le module est indisponible ou trop ancien, mettez XXTouch à jour avant d'utiliser capture_ui_state. Le journal téléverse les octets .xxtuie bruts mis en cache par l'objet ; le texte de repli est [界面状态]. Les tables d'alias et les tableaux texte-image sont également pris en charge.
local state = LCC.capture_ui_state()
LCC.log(1, "提交失败", state)
state:destroy()
Une demande HTTP contient au plus un objet d'état d'interface ; après décodage, le total des images ordinaires et de l'état ne doit pas dépasser 20 MiB dans une même demande. Un objet détruit ne peut plus être écrit dans un journal. Pour la capture, l'enregistrement local et la libération des ressources, consultez LCC.capture_ui_state.
Dans l'historique des journaux, les images et les états d'interface apparaissent sous forme de cartes jointes. Cliquez sur une image pour en prévisualiser l'original et ouvrir le sélecteur de couleur depuis l'aperçu ; cliquez sur une carte d'état pour ouvrir l'outil des éléments textuels, qui restaure la capture et l'arbre des éléments. Lors de l'export d'un journal contenant des pièces jointes, vous pouvez exporter uniquement le texte brut ou un fichier zip contenant un HTML consultable, les originaux et le .xxtuie original ; si un fichier joint a disparu, le HTML affiche un espace réservé de fichier manquant, tandis que les autres contenus du journal et les pièces encore présentes continuent d'être exportés.