啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間啟動記錄器JMP 插件,版本 1
由傑夫·帕金森撰寫,傑夫·珀金森@jmp.com
每次啟動 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
其中主機名是運行 JMP 的計算機的名稱,日期和時間是啟動日期和時間。
文本文件中收集的信息是:
位數=> 64 位或 32 位
構建信息=> 構建日期和時間,無論是發布版本還是調試版本,以及以逗號分隔的字符串中的產品名稱
日期=> JMP 的啟動日期和時間
主持人=> Mac 或 Windows
主機名=> 環境變量 COMPUTERNAME (Windows) 或 HOSTNAME (Mac) 的值
聯合管理計劃版本=> 正在推出的 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 ) );
每次啟動 JMP 時,啟動記錄器都會創建一個包含系統詳細信息的小文本文件。
這些文本文件可用於跟踪 JMP 在給定計算機上啟動的次數。
公用事業回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間好吧,如果加載項不存在,那麼它不會記錄任何內容也就不足為奇了。 
至於加載項如何消失,您可能需要與 IT 部門聯繫,看看他們是否正在清理安裝加載項的配置文件目錄,或者您可能有多個配置文件目錄。
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間嗨傑夫,
日誌窗口中沒有任何內容 (Ctrl+Shift+L)。
目前整個公司只有不到一半的用戶登錄?
我注意到嵌入腳本的加載項奇怪地從我的電腦中消失了。
重新安裝後,我的 JMP 啟動現在再次被記錄。
知道加載項如何消失嗎?
- 菲利普
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間@jpol ,這很奇怪。
首先查看日誌窗口,看看啟動 JMP 後是否有任何消息。
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間嗨傑夫,
有沒有人報告說,隨著時間的推移,啟動記錄器記錄的啟動次數越來越少?
今天早上我檢查了一下,發現當我自己啟動 JMP 時沒有記錄(沒有存儲文本文件,如之前一樣)。 我的活動似乎已經有幾週左右沒有被記錄了。
我的假設是某些 MS 更新包導致了這種情況的發生,但我不能確定。 我還注意到有些用戶從未登錄。
關於我可以從哪裡開始調查有什麼建議嗎?
此致,
菲利普
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間謝謝杰夫和唐,
這非常有效,作為本地管理員,我可以輕鬆查看每個用戶使用的構建信息和 JMP 版本。
此致,
菲利普
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間@jpol ,
我必須承認你對我的理解有點短。 我認為我將日誌信息存儲為關聯數組很聰明。 它確實作為一種自記錄存儲格式運行良好,並且允許人們將來向日誌中添加其他信息,並且大概仍然能夠解析混合文件。
然而,您的詢問讓我意識到將一堆關聯數組放入數據表中並不像我希望的那樣簡單。
謹致謝意@唐麥考馬克,這裡有一些代碼將從日誌文件文件夾中創建數據表。
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 可能會讓這變得更容易。
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間嗨傑夫,
我想使用啟動記錄器插件來監控整個公司啟動 JMP 的次數。
我已經成功創建了日誌文件。
不幸的是,我不熟悉關聯數組,因此發現提取和連接文件相當困難。
您能提供一些提示嗎?
謝謝,
菲利普
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間@ashley_prince ,否,這將計算安裝該版本的 JMP 的任何版本的啟動。
回复:啟動記錄器 - 跟踪每次在計算機上啟動 JMP 的時間嗨傑夫,
這太棒了——謝謝你的分享! 您能否確認這僅計算年度許可證安裝的啟動次數?
謝謝!