package com.eactive.eai.batch.common;

import com.eactive.eai.batch.doc.BatchDoc;
import com.eactive.eai.batch.logger.LogManager;


/**
 * 1. 기능: JPD 및 Class에서 로깅을 위하여 호출하는 프로그램
 *   - LogUtil에서는 다음과 같은 태그로 각 로그를 구분한다.
 *     S: 시작로글
 *     C: 진행중인 로글
 *     E: 에러 종료 로그
 *     T: 정상 종료 로그
 *   - 본 프로그램에서는 호출된 프로그램으로부터 값을 추출하여 적절한 태그를 추가한 다음
 *     LogSender 프로그램을 호출한다.
 *
 * 2. 주의사항: LogUtil에서는 LogSender JPD에 연결이 안될 경우 별도의 로깅은 하지 않는다.
 *    다만, File로 로깅 처리를 하도록 한다.
 */
public class LogUtil
{

    /**
     * 1.기능: LogUtil에서 실제 LogSender에 연결하는 메소드
     */

   /* ============================================================================
   *  아래의 메소드는 EAIBatchMessageDocument를 입력으로 받는 메소드
   *    - 최초 로그 생성시: setStartLog(BatchDoc)
   *    - 진행중인 로그: setLog(BatchDoc)
   *    - 에러로그: setLog(BatchDoc, ErrorMsg)
   *    - 종료로그: setEndLog(BatchDoc)
   ============================================================================   */

    /**
     * 1.기능: Log를 처음 만드는 프로그램에서 호출하는 Log 생성 메소드
     */
    public static void setStartLog(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().setLogStart(doc);
	}

    /**
     * 1.기능: 진행중인 로그를 저장하는 메소드
     */
    public static void setLog(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().setLogStage(doc);
	}

    /**
     * 1.기능: 에러 로그를 저장하는 메소드
     */
    public static void setEndLog(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().setLogEnd(doc);
	}

    /**
     * 1.기능: 에러 로그를 저장하는 메소드
     */
    public static void setErrorLog(BatchDoc doc, String errMsg) throws Exception
    {
		LogManager.getInstance().setLogError(doc, errMsg);
	}

    /**
     * 1.기능: 사용자중지 로그를 저장하는 메소드
     */
    public static void setCancelLog(BatchDoc doc, String errMsg) throws Exception
    {
		LogManager.getInstance().setLogCancel(doc, errMsg);
	}

    /**
     * 1.기능: 단계 진행중 로그 Master의 필드가 결정되는 경우 로그 Master update
     */
    public static void updateLogMaster(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().updateLogMaster(doc);
	}

    public static void setLogFileStart(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().setLogFileStart(doc);
	}

    public static void setLogFileEnd(BatchDoc doc) throws Exception
    {
		LogManager.getInstance().setLogFileEnd(doc);
	}
}

