Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einer Maschine gestartet wirdStarten Sie Logger JMP-Add-In, Version 1
Geschrieben von Jeff Perkinson, jeff.Perkinson@jmp.com
Launch Logger erstellt bei jedem Start von JMP eine kleine Textdatei mit Systemdetails.
Diese Textdateien können verwendet werden, um zu verfolgen, wie oft JMP auf einem bestimmten Computer gestartet wird.
Wenn ein Systemadministrator alle diese Dateien auf einer Sammlung von Computern sammelt, kann der Administrator JMP-Starts im gesamten Unternehmen verfolgen.
Launch Logger verfügt über keine Benutzeroberfläche. Es verwendet addinload.jsl, um Systeminformationen zu sammeln und in die Textdatei zu schreiben.
Die Textdatei wird in dem durch definierten Verzeichnis gespeichert JMP-Pfadvariable USER_APPDATA. Der Speicherort, auf den diese Variable verweist, hängt vom JMP-Produkt und dem Betriebssystem ab.
- Windows (JMP): C:/Users//AppData/Roaming/SAS/JMP//
- Windows (JMP Pro): C:/Users//AppData/Roaming/SAS/JMPPro//
- Macintosh: /Users//Library/Application Support/JMP//
Die Dateien in diesem Verzeichnis werden nach folgendem Muster benannt:
Hostname _ Datum _ Zeit .txt
Dabei ist Hostname der Name des Computers, auf dem JMP ausgeführt wird, und Datum und Uhrzeit sind das Startdatum und die Startzeit.
Die in den Textdateien gesammelten Informationen sind:
Bitness => 64-Bit oder 32-Bit
Build-Informationen => Datum und Uhrzeit des Builds, unabhängig davon, ob es sich um einen Release- oder Debug-Build handelt, und den Produktnamen in einer durch Kommas getrennten Zeichenfolge
Datum => Datum und Uhrzeit des Starts von JMP
Gastgeber => Mac oder Windows
Hostname => der Wert der Umgebungsvariablen COMPUTERNAME (Windows) oder HOSTNAME (Mac)
JMP Ausführung => die Version von JMP, die gestartet wird
Produktname => der Name des JMP-Produkts, das ausgeführt wird, Pro oder Standard
Nutzername => der Wert der Umgebungsvariablen USERNAME (Windows) oder USER (Macintosh)
Die Textdatei wird mit einer Syntax geschrieben, die das Zurücklesen dieser Werte in ein assoziatives Array in JMP zur Aggregation der Protokolle erleichtert.
Der Inhalt von addinload.jsl in Launch Logger ist:
info = Associative Array();
info["JMP Version"] = JMP Version();
info["Build Information"] = Build Information();
info["Date"] = Format( Today(), "m/d/y h:m:s" );
info["Host"] = If( Host is( Mac ),
"Mac",
"Windows"
);
info["Bitness"] = If( Host is( Bits32 ),
"32-bit",
"64-bit"
);
info["Username"] = If( Host is( Windows ),
Get Environment Variable( "USERNAME" ),
Get Environment Variable( "USER" )
);
info["Product Name"] = JMP Product Name();
info["Hostname"] = If( Host is( Windows ),
Get Environment Variable( "COMPUTERNAME" ),
Get Environment Variable( "HOSTNAME" )
);
dir = "$USER_APPDATA/JMPLaunchLogger/";
filename = dir || info["Hostname"] || "_" || Format( Today(), "ddMONYYYY" ) || "_" || Char( Hour( Today() ) ) || Char( Minute( Today() ) ) ||
Char( Second( Today() ) ) || ".txt";
If( !Directory Exists( dir ),
dir_create_success = Try( Create Directory( dir ), exception_msg )
);
Save Text File( filename, Char( info ) );
Launch Logger erstellt bei jedem Start von JMP eine kleine Textdatei mit Systemdetails.
Diese Textdateien können verwendet werden, um zu verfolgen, wie oft JMP auf einem bestimmten Computer gestartet wird.
DienstprogrammeBetreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdWenn das Add-In nicht vorhanden ist, ist es nicht verwunderlich, dass es nichts protokolliert. 
Wie das Add-In verschwinden könnte, müssen Sie wahrscheinlich mit Ihrer IT-Abteilung besprechen, um zu sehen, ob das Profilverzeichnis, in dem die Add-Ins installiert sind, bereinigt wird, oder ob Sie möglicherweise mehrere Profilverzeichnisse haben .
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdHallo Jeff,
Nichts im Protokollfenster (Strg+Umschalt+L).
Derzeit sind unternehmensweit weniger als die Hälfte der Benutzer angemeldet?
Mir ist aufgefallen, dass das Add-In, in das ich das Skript eingebettet hatte, seltsamerweise von meinem PC verschwunden ist.
Nach der Neuinstallation werden meine JMP-Starts nun erneut protokolliert.
Irgendeine Idee, wie ein Add-In verschwinden kann?
- Philipp
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wird@jpol , Das ist seltsam.
Schauen Sie sich zunächst das Protokollfenster an, um zu sehen, ob dort unmittelbar nach dem Start von JMP Meldungen vorhanden sind.
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdHallo Jeff,
Hat jemand berichtet, dass der Launch-Logger mit der Zeit immer weniger Starts protokolliert?
Ich habe heute Morgen nachgesehen und festgestellt, dass beim Starten von JMP kein Datensatz vorhanden war (es wurde keine Textdatei gespeichert, wie zuvor). Es scheint, dass meine Aktivitäten seit etwa ein paar Wochen nicht mehr protokolliert wurden.
Ich gehe davon aus, dass dies durch ein MS-Update-Paket verursacht wurde, bin mir aber nicht sicher. Mir ist auch aufgefallen, dass einige Benutzer nie angemeldet werden.
Irgendwelche Vorschläge, wo ich mit der Untersuchung beginnen kann?
Mit freundlichen Grüßen,
Philipp
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdDanke Jeff und Don,
Das funktioniert sehr gut und als lokaler Administrator kann ich leicht die von jedem Benutzer verwendeten Build-Informationen und JMP-Version sehen.
Mit freundlichen Grüßen,
Philipp
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wird@jpol ,
Ich muss zugeben, dass du mich etwas zu kurz gekommen bist. Ich dachte, ich wäre schlau, wenn ich die Protokollinformationen als assoziatives Array speichere. Es eignet sich gut als selbstdokumentierendes Speicherformat und ermöglicht es, in Zukunft weitere Informationen zu Protokollen hinzuzufügen und vermutlich weiterhin gemischte Dateien zu analysieren.
Ihre Anfrage hat mir jedoch klar gemacht, dass es nicht so einfach ist, eine Reihe assoziativer Arrays in eine Datentabelle zu integrieren, wie ich gehofft hatte.
Mit Dank an @DonMcCormack , hier ist ein Code, der aus einem Ordner mit Protokolldateien eine Datentabelle erstellt.
tableFromAAList = Function({inList},{Default Local},
tblRef = New Table("Data from List of AAs");
For(i=1,i<=N Items(inList),i++,
nextKeys = inList[i] << Get Keys;
tblRef << Add Row(1);
For(j=1,j<=N Items(nextKeys),j++,
nextVal = inList[i] << Get Value(nextKeys[j]);
Try(
Column(tblRef,nextKeys[j])[i] = nextVal;
,//ON ERROR
tblRef << New Column(nextKeys[j],Character);
Column(tblRef,nextKeys[j])[i] = nextVal;
);
)
);
tblRef << Delete Columns("Column 1");
);
logfiles = Files In Directory( "./Logs" );
logs = {};
For( i = 1, i <= N Items( logfiles ), i++,
Insert Into( logs, Parse( Load Text File( "./Logs/" || logfiles[i] ) ) )
);
tableFromAAList(logs);
JMP 14 könnte dies einfacher machen.
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdHallo Jeff,
Ich möchte das Launch Logger Add-In verwenden, um zu überwachen, wie oft JMP im gesamten Unternehmen gestartet wird.
Es ist mir gelungen, Protokolldateien erstellen zu lassen.
Leider kenne ich mich mit den assoziativen Arrays nicht aus und daher fällt es mir ziemlich schwer, die Dateien zu extrahieren und zu verketten.
Könnten Sie ein paar Hinweise geben?
Danke,
Philipp
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wird@ashley_prince , nein, es werden Starts von jeder Version von JMP gezählt, in der es installiert ist.
Betreff: Logger starten – Verfolgen Sie jedes Mal, wenn JMP auf einem Computer gestartet wirdHallo Jeff,
Das ist großartig – vielen Dank fürs Teilen! Können Sie bestätigen, dass dies nur Starts von Jahreslizenzinstallationen berücksichtigt?
Danke!