로거 실행 - 기계에서 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
여기서 호스트 이름은 JMP를 실행하는 시스템의 이름이고 날짜 및 시간은 시작 날짜 및 시간입니다.
텍스트 파일에 수집된 정보는 다음과 같습니다.
비트니스 => 64비트 또는 32비트
빌드 정보 => 빌드 날짜 및 시간, 릴리스 또는 디버그 빌드인지, 쉼표로 구분된 문자열의 제품 이름
날짜 => JMP가 실행되는 날짜와 시간
주인 => 맥 또는 윈도우
호스트 이름 => 환경 변수 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: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적음, 추가 기능이 없으면 아무 것도 기록하지 않는 것이 놀라운 일이 아닙니다. 
추가 기능이 사라질 수 있는 방법에 관해서는 IT 부서에 문의하여 추가 기능이 설치된 프로필 디렉터리를 정리하고 있는지 또는 프로필 디렉터리가 여러 개인지 확인해야 합니다. .
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적안녕 제프,
로그 창에 아무것도 없습니다(Ctrl+Shift+L).
현재 회사 전체에서 사용자의 절반 미만이 기록되고 있습니까?
스크립트가 포함된 추가 기능이 내 PC에서 이상하게 사라졌습니다.
다시 설치하면 이제 JMP 실행이 다시 기록됩니다.
추가 기능이 어떻게 사라질 수 있는지 아십니까?
- 필립
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적@jpol , 그거 이상 하네.
로그 창을 살펴보고 JMP를 시작한 직후에 메시지가 있는지 확인하십시오.
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적안녕 제프,
출시 로거가 시간이 지남에 따라 점점 더 적은 출시를 기록한다고 보고한 사람이 있습니까?
오늘 아침에 확인해보니 JMP를 직접 실행했을 때 기록이 없었습니다(이전처럼 텍스트 파일이 저장되지 않음). 내 활동이 몇 주 동안 기록되지 않은 것 같습니다.
내 가정은 일부 MS 업데이트 패키지로 인해 이 문제가 발생했지만 확신할 수 없습니다. 또한 일부 사용자는 기록되지 않는 것으로 나타났습니다.
어디에서 조사를 시작할 수 있는지에 대한 제안이 있습니까?
친애하는,
필립
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적Jeff와 Don에게 감사합니다.
이것은 매우 잘 작동하며 로컬 관리자로서 각 사용자가 사용하는 빌드 정보 및 JMP 버전을 쉽게 볼 수 있습니다.
친애하는,
필립
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적@jpol ,
나는 당신이 나를 조금 짧게 잡았음을 인정해야 합니다. 로그 정보를 연관 배열로 저장하여 영리하다고 생각했습니다. 자체 문서화 저장 형식으로 잘 작동하고 향후 로그에 다른 정보를 추가할 수 있으며 아마도 여전히 혼합 파일을 구문 분석할 수 있습니다.
그러나 귀하의 문의를 통해 여러 개의 연관 배열을 데이터 테이블로 가져오는 것이 제가 기대했던 것만큼 간단하지 않다는 것을 깨달았습니다.
감사와 함께 @DonMcCormack , 다음은 로그 파일 폴더에서 데이터 테이블을 만드는 코드입니다.
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: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적안녕 제프,
Launch Logger 추가 기능을 사용하여 회사 전체에서 JMP가 실행되는 횟수를 모니터링하고 싶습니다.
로그 파일을 생성하는 데 성공했습니다.
불행히도 저는 연관 배열에 익숙하지 않기 때문에 파일을 추출하고 연결하는 것이 다소 어렵다는 것을 알았습니다.
몇 가지 힌트를 제공해 주시겠습니까?
감사해요,
필립
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적@ashley_prince , 아니오 이것은 JMP가 설치된 모든 버전의 시작을 계산합니다.
Re: 로거 실행 - 기계에서 JMP가 실행될 때마다 추적안녕 제프,
이것은 굉장합니다 - 공유해 주셔서 감사합니다! 이 카운트가 연간 라이선스 설치에서만 시작된다는 것을 확인할 수 있습니까?
감사해요!