Gibt es eine Möglichkeit, eine benutzerdefinierte Protokolldatei in JSL zu erstellen?Alle,
Ich erstelle eine Anwendung und möchte es den Benutzern ermöglichen, eine Vorschau einer Protokolldatei anzuzeigen, die zusammen mit dem Skript individuell erstellt wurde. Ich bin der Meinung, dass diese Methode sowohl mir als auch den Benutzern in Zukunft bei der Fehlerbehebung helfen wird.
Ich denke, eine Möglichkeit, es zu schreiben, besteht darin, eine Liste zu erstellen und die Liste als Textdatei auszuschreiben. Aber ich bin offen für Vorschläge und frage mich, ob es einen besseren, saubereren und effizienteren Weg gibt, dies zu tun.
Betreff: Gibt es eine Möglichkeit, eine benutzerdefinierte Protokolldatei in JSL zu erstellen?Ich mache etwas Ähnliches, hier ist meine Strategie für die meisten Projekte:
- Alle Skripte haben das gleiche Protokollformat, sodass sie leicht zusammengefasst werden können.
- Bei einigen Add-Ins werden Protokolle automatisch an einen zentralen Ort hochgeladen. JMP 14 verfügt über eine großartige Methode, all dies zusammenzufassen.
- Ich verwende ein CSV-Format, das auch andere Informationen speichert, wie zum Beispiel:
- Name und Version des Skripts/Add-Ins
- OS/JMP-Version
- Funktionsname
- Für Add-Ins lade ich die Funktion „writeToLog“ in einen Namespace für dieses Add-In.Am Anfang jedes Skripts definiere ich diesen Namespace, sodass ich in jede Datei innerhalb dieses Add-Ins Protokollnachrichten schreiben kann, indem ich ns:log("message", function="foo") verwende.
Betreff: Gibt es eine Möglichkeit, eine benutzerdefinierte Protokolldatei in JSL zu erstellen?Ich würde Verwenden Sie einfach die Funktion „Textdatei speichern“, um sie an eine fortlaufende Protokolldatei anzuhängen. Siehe Beispiel unten.
// some variables to show
x = 5;
y = 10;
z = 25;
// path to the log
logFilePath = "$TEMP/MyJmpAddin2.log";
// initialize the log in case it doesnt exist
If( !File Exists( logFilePath ), Save Text File( logFilePath, "" ) );
// function to write to the log file (with a new line character at the end)
writeToLog = Function( {str},
Save Text File(
logFilePath,
Format( Today(), "m/d/y h:m:s" ) || " - " || str || "\!N",
Mode( "append" )
)
);
writeToLog( "showing x in JMP log" );
show( x );
writeToLog( "showing y in JMP log" );
show( y );
writeToLog( "showing z in JMP log" );
show( z );
// for demonstration purposes, open the log file as plain text
Open( logFilePath, "plain text" );
Hier ist die resultierende Protokolldatei:
01/31/2018 1:56:23 PM - showing x in JMP log
01/31/2018 1:56:23 PM - showing y in JMP log
01/31/2018 1:56:23 PM - showing z in JMP log