목차

XPlusLogger 가이드

이 화면은 XPlusLogger.ocx 컴포넌트에 대한 샘플 화면이다.

XPlusLogger.ocx 컴포넌트는 XPlusAgent용 화면에서 로그를 파일에 저장하기 위한 기능을 제공한다.

예시

템플릿 위치: /XPLUS/xplus_logger

템플릿 파일

화면 스크립트

// Xlogger 초기화 버튼 클릭시 이벤트 처리
function btnInitXLogger_on_mouseup(objInst)
{
	var strLogDir = "C:\\xFrame\\log";
	var strLogFilePrefix = "XPlusLogger";
	var nLogSaveDays = 10;
	var strLogLevel = "DEBUG";
	var nEncodeFlag = 0;

	/**
	 * XPlusLogger 초기화, 처음 시작시 한번만 호출해야 함
	 * @param pLogDir 로그 저장 디렉토리 경로
	 * @param pLogFilePrefix 로그 파일 이름
	 * @param nLogSaveDays 이전 로그 파일 보관 일자
	 * @param pLogLevel 로그 레벨 ("DEBUG" < "INFO" < "WARN" < "ERROR" < "FATAL")
	 * @param nLogEncFlag 로그 암호화 여부 플래그 (0 또는 1)
	 * @returns 처리 결과 값
	 *		0: Success
	 *		1: Invalid Parameter
	 *		9: Already Initialized
	 */
	var nRet = objXPlusLogger.innerctrl.InitXPlusLogger(strLogDir, strLogFilePrefix, nLogSaveDays, strLogLevel, nEncodeFlag);
	factory.consoleprint("InitXPlusLogger Return Value = " + nRet);
	if(nRet != 0) {
		screen.alert("InitXPlusLogger Fail, Error Code = " + nRet);
	}

	/**
	 * 로그 파일 내용을 UTF-8 형식으로 저장한다.
	 * @param nUtf8Flag UTF-8 형식 사용 여부 플래그 (0: 사용안함, 1:사용)
	 * @return
	 * 	0 : Success
	 * 	1 : Invalid Log File Name Type
	 */
	objXPlusLogger.innerctrl.SetUtf8Flag(1);

	/**
	 * BOM 기록 여부 설정한다.
	 * @param nUtf8Flag UTF-8 형식 사용 여부 플래그 (0: 기록안함, 1:기록함)
	 * @return
	 * 		0 : Success
	 *		9: Not Initialized
	 */
	objXPlusLogger.innerctrl.SetBomWriteFlag(1);

	/**
	 * 로그 파일 이름 형식을 지정한다.
	 * @param nLogFileNameType 파일 이름 형식
	 *            1 : YYYYMMDD_hhmmss_ThreadID 로그 파일이 시간별로 기록됨
	 *            2 : YYYYMMDD_hhmmss 로그 파일이 시간별로 기록됨
	 *            3 : YYYYMMDD 로그 파일이 날짜별로 기록됨 (Default)
	 * @return
	 * 		0 : Success
	 *		9: Not Initialized
	 */
	objXPlusLogger.innerctrl.SetLogFileNameType(3);
}


function btnGetLogFlag_on_mouseup(objInst)
{
	/**
	 * 로그 기록 여부 플래그 리턴 (0으로 설정시 로그가 기록되지 않음)
	 * @returns nLogFlag 로그 기록 여부
	 *		0: 로그 기록하지 않음
	 *		1: 로그 기록
	 *		9: Not Initialized
	 */
	factory.consoleprint("GetLogFlag Return Value = " + objXPlusLogger.innerctrl.GetLogFlag());
}

function btnSetLogFlag_on_mouseup(objInst)
{
	var nLogFlag, nRet;

	nLogFlag = objXPlusLogger.innerctrl.GetLogFlag();
	if(nLogFlag == 1) {
		/**
		 * 로그 기록 여부 플래그 설정 (0으로 설정시 로그가 기록되지 않음)
		 * @param nLogFlag 로그 기록 여부 (0/1)
		 * @returns 처리 결과 값
		 *		0: Success
		 *		1: Invalid Parameter
		 *		9: Not Initialized
		 */
		nRet = objXPlusLogger.innerctrl.SetLogFlag(0);
	}
	else {
		nRet = objXPlusLogger.innerctrl.SetLogFlag(1);
	}
	factory.consoleprint("SetLogFlag Return Value = " + nRet);
}

function btnGetLogLevel_on_mouseup(objInst)
{
	/**
	 * 로그 레벨 리턴 ("DEBUG", "INFO", "WARN", "ERROR", "FATAL", "UNKNOWN")
	 * @returns 로그 레벨 문자열
	 */
	factory.consoleprint("GetLogLevel Return Value = " + objXPlusLogger.innerctrl.GetLogLevel());
}

// 로그 기록 필터링 레벨 설정 버튼 클릭 이벤트 처리
function btnSetLogLevel_on_mouseup(objInst)
{
	/**
	 * 로그 레벨 설정 ("DEBUG" < "INFO" < "WARN" < "ERROR" < "FATAL")
	 * @param pLogLevel 로그 레벨 ("DEBUG", "INFO", "WARN", "ERROR", "FATAL")
	 * @returns 처리 결과 값
	 *		0: Success
	 *		1: Invalid Parameter
	 *		9: Not Initialized
	 */
	nRet = objXPlusLogger.innerctrl.SetLogLevel("INFO");
	factory.consoleprint("SetLogLevel Return Value = " + nRet);
	if(nRet != 0) {
		screen.alert("SetLogLevel Fail, Error Code = " + nRet);
	}
}

// 로그 기록 버튼 클릭 이벤트를 처리한다.
function btnLogWrite_on_mouseup(objInst)
{
	var nRet;
	nRet = objXPlusLogger.innerctrl.LogDebug("DEBUG MESSAGE");
	factory.consoleprint("LogDebug Return Value = " + nRet);
	nRet = objXPlusLogger.innerctrl.LogInfo("INFO MESSAGE");
	factory.consoleprint("LogInfo Return Value = " + nRet);
	nRet = objXPlusLogger.innerctrl.LogWarn("WARN MESSAGE");
	factory.consoleprint("LogWarn Return Value = " + nRet);
	nRet = objXPlusLogger.innerctrl.LogError("ERROR MESSAGE");
	factory.consoleprint("LogError Return Value = " + nRet);
	nRet = objXPlusLogger.innerctrl.LogFatal("FATAL MESSAGE");
	factory.consoleprint("LogFatal Return Value = " + nRet);
}