Launch Logger - マシン上で JMP が起動されるたびに追跡しますロガーの起動JMP アドイン、バージョン 1
ジェフ・パーキンソン著、 jeff.Perkinson@jmp.com
Launch Logger は、JMP が起動されるたびに、システムの詳細を含む小さなテキスト ファイルを作成します。
これらのテキスト ファイルを使用して、特定のマシン上で JMP が起動された回数を追跡できます。
システム管理者がマシンのコレクション全体にわたってこれらすべてのファイルを収集すると、管理者は組織全体での JMP の起動を追跡できます。
Launch Logger にはユーザー インターフェイスがありません。 addinload.jsl を使用してシステム情報を収集し、テキスト ファイルに書き込みます。
テキスト ファイルは、 JMP パス変数USER_APPDATA。 この変数が指す場所は、JMP 製品とオペレーティング システムによって異なります。
- Windows (JMP): C:/Users/<ユーザー名>/AppData/Roaming/SAS/JMP/<バージョン番号>/
- Windows (JMP Pro): C:/Users/<ユーザー名>/AppData/Roaming/SAS/JMPPro/<バージョン番号>/
- Macintosh: /Users/<ユーザー名>/Library/Application Support/JMP/<バージョン番号>/
このディレクトリ内のファイルには、次のパターンを使用して名前が付けられます。
ホスト名_日にち_時間。TXT
ここで、hostname は JMP を実行しているマシンの名前、date and time は起動日時です。
テキスト ファイルに収集される情報は次のとおりです。
ビットネス=> 64 ビットまたは 32 ビット
ビルド情報=> ビルド日時、リリースビルドかデバッグビルドか、およびカンマ区切り文字列の製品名
日にち=> JMP が起動される日時
ホスト=> Mac または Windows
ホスト名=> 環境変数 COMPUTERNAME (Windows) または HOSTNAME (Mac) の値
JMPバージョン=> 起動されている JMP のバージョン
商品名=> 実行されている JMP 製品の名前 (Pro または Standard)
ユーザー名=> 環境変数 USERNAME (Windows) または USER (Macintosh) の値
テキスト ファイルは、ログを集約するためにこれらの値を JMP の連想配列に簡単に読み取ることができる構文を使用して作成されます。
Launch Logger の addinload.jsl の内容は次のとおりです。
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 は、JMP が起動されるたびに、システムの詳細を含む小さなテキスト ファイルを作成します。
これらのテキスト ファイルを使用して、特定のマシン上で JMP が起動された回数を追跡できます。
公共事業Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するまあ、アドインが存在しない場合、何も記録されないのは驚くべきことではありません。 
アドインがどのように消えるかについては、おそらく IT 部門に相談して、アドインがインストールされているプロファイル ディレクトリを一掃しているかどうか、または複数のプロファイル ディレクトリがあるかどうかを確認する必要があります。 。
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するこんにちは、ジェフ
ログウィンドウには何も表示されません (Ctrl+Shift+L)。
現在、会社全体でログに記録されているユーザーは半分未満ですか?
スクリプトを埋め込んでいたアドインが、奇妙なことに私の PC から消えていることに気づきました。
再インストールすると、JMP の起動が再びログに記録されるようになりました。
アドインがどのようにして消えるかご存知ですか?
- フィリップ
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡する@jpol 、 それは変だ。
まず、ログ ウィンドウを調べて、JMP の起動直後にメッセージがあるかどうかを確認します。
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するこんにちは、ジェフ
時間が経つにつれて、起動ロガーが記録する起動の数が徐々に少なくなったと報告した人はいますか?
今朝確認したところ、JMP を自分で起動したときにレコードが存在しないことがわかりました (前述のように、テキスト ファイルは保存されていませんでした)。 私のアクティビティが数週間ほど記録されていないようです。
私の推測では、何らかの MS アップデート パッケージがこれを引き起こしているのではないかと考えていますが、確信は持てません。 また、一部のユーザーがログに記録されないことにも気付きました。
どこから調査を始めればよいかについて何か提案はありますか?
よろしくお願いします、
フィリップ
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するジェフとドン、ありがとう。
これは非常にうまく機能し、ローカル管理者として、各ユーザーが使用しているビルド情報と JMP バージョンを簡単に確認できます。
よろしくお願いします、
フィリップ
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡する@jpol 、
あなたが私を少し不足させたことを認めなければなりません。 ログ情報を連想配列として保存することで賢くなったと思いました。 これは自己文書化されたストレージ形式としてうまく機能し、将来的に他の情報をログに追加することを可能にし、おそらく混合ファイルを解析することも可能です。
しかし、あなたの問い合わせにより、多数の連想配列をデータ テーブルに取り込むのは、私が期待していたほど簡単ではないことがわかりました。
感謝の気持ちを込めて@donmcormack 、ログ ファイルのフォルダーからデータ テーブルを作成するコードを次に示します。
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 ではこれが簡単になる可能性があります。
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するこんにちは、ジェフ
Launch Logger アドインを使用して、会社全体で JMP が起動された回数を監視したいと考えています。
ログファイルの作成に成功しました。
残念ながら、私は連想配列に詳しくないため、ファイルを抽出して連結するのはかなり難しいと思います。
いくつかヒントをいただけますか?
ありがとう、
フィリップ
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡する@アシュリープリンスいいえ、これは、インストールされている JMP の任意のバージョンからの起動をカウントします。
Re: Launch Logger - マシン上で JMP が起動されるたびに追跡するこんにちは、ジェフ
これは素晴らしいです - 共有してくれてありがとう! これは、年間ライセンスのインストールによる起動のみをカウントしていることを確認できますか?
ありがとう!