Connectez-vous à un fichier à la place
Je sais que c'est vieux, mais j'avais récemment besoin de journaliser certaines valeurs d'un script InDesign et je voudrais partager ma "solution".
Mon premier problème était que je ne savais même pas où va la sortie produite par $.writeln()
. J'ai donc eu recours à une fonction rudimentaire qui enregistre dans un fichier dans le répertoire du document. Peut-être que cela sera utile à quelqu'un. Je suppose que cela pourrait fonctionner également pour Photoshop ou d'autres environnements ExtendScript.
J'ai appris qu'ExtendScript ne prend pas en charge les méthodes JSON
, donc j'ai utilisé un polyfill. Il suffit de mettre le fichier (dans mon cas json2.js
) dans le même répertoire que votre .jsx
.
#include "json2.js"; // inclure le fichier de polyfill
function log (input) {
if(!debug) return;
if(!JSON || !JSON.stringify) return;
var now = new Date();
var output = JSON.stringify(input);
$.writeln(now.toTimeString() + ": " + output);
var logFile = File(app.activeDocument.filePath + "/log.txt");
logFile.open("a");
logFile.writeln(now.toTimeString() + ": " + output);
logFile.close();
}
Utilisation
var debug = true;
log("abc 123");
log([1, 3, 4343, "ddddd", null, false]);
Utilisez la variable debug
pour activer ou désactiver rapidement la sortie.