package com.eactive.eai.common.util;

/**
 * 1. 기능 : Log4j 환경을 위한 상수를 정의한 interface
 * 2. 처리 개요 :
 *
 * 3. 주의사항
 *
 * @author  :
 * @version : v 1.0.0
 * @see :
 * @since   :
 */

public interface LogKeys
{

	//파일로거 메인 프라퍼티 그룹 명
    public static final String LOGGER_INFO               = "FileLoggerInfo";
    public static final String PATTERN_LAYOUT	="pattern.layout";
    public static final String ENCODING     	="encong";

    //초기화 시 생성할 파일로거 명들
    public static final String LOGGER_DEFAULT            = "FileLogger{DEFAULT}";
    public static final String LOGGER_ADAPTER            = "FileLogger{ADAPTER}";
    public static final String LOGGER_ADAPTER_ERR        = "FileLogger{ADAPTER_ERR}";
    public static final String LOGGER_FILEEVENT          = "FileLogger{FILEEVENT}";
    public static final String LOGGER_SCHEDULER          = "FileLogger{SCHEDULER}";
    public static final String LOGGER_EXCEPTION          = "FileLogger{EXCEPTION}";
    public static final String LOGGER_SMS                = "FileLogger{SMS}";

    public static final String LOGGER_DEFAULT_PREFIX            = "FileLogger{DEFAULT}";     
    public static final String LOGGER_ADAPTER_PREFIX            = "FileLogger{ADAPTER}";     
    public static final String LOGGER_ADAPTER_ERR_PREFIX        = "FileLogger{ADAPTER_ERR}"; 
    public static final String LOGGER_FILEEVENT_PREFIX          = "FileLogger{FILEEVENT}";   
    public static final String LOGGER_SCHEDULER_PREFIX          = "FileLogger{SCHEDULER}";   
    public static final String LOGGER_EXCEPTION_PREFIX          = "FileLogger{EXCEPTION}";   
    public static final String LOGGER_SMS_PREFIX                = "FileLogger{SMS}";   
    
	//FileLoggerInfo 프라퍼티
    public static final String INITIAL_LOGGER_LIST       = "initial.logger.list";    //파일로거 Logger 프라퍼티 그룹명 리스트 (필수)
    public static final String INITIAL_APPENDER_LIST     = "initial.appender.list";  //파일로거 Appender 프라퍼티 그룹명 리스트 (필수)
    public static final String INITIAL_LOGGER_CLIENT     = "initial.logger.client";    //파일로거 Client Logger 프라퍼티 그룹명 (필수)
    public static final String INITIAL_APPENDER_CLIENT   = "initial.appender.client";  //파일로거 Client Appender 프라퍼티 그룹명 (필수)


	//파일로거 log4j Logger 프라퍼티들
    public static final String LOGGER_LEVEL              = "logger.level";           //log4j Logger 로그레벨 속성 (가질수있는 값 : debug, info, warn, error, fatal) (선택, 디폴트 debug)
    public static final String LOGGER_APPENDER     		 = "logger.appender";   //log4j Logger 에 설정할 Appender 프라퍼티 그룹명 리스트 (선택, 1개이상 권장)
    public static final String LOGGER_APPENDER_LIST      = "logger.appender.list";   //log4j Logger 에 설정할 Appender 프라퍼티 그룹명 리스트 (선택, 1개이상 권장)
    public static final String LOGGER_CONSOLE            = "logger.console";         //log4j Logger 콘솔 출력여부 (가질수있는 값 : on, off) (선택, 디폴트 on)
    public static final String LOGGER_ADITIVITY          = "logger.aditivity";       //log4j Logger aditivity 속성 (가질수있는 값 : true, false) (선택, 디폴트 false)


	//파일로그 log4j Appender 프라퍼티들
    public static final String APPENDER_LOG_DIRECOTRY    = "appender.log.directory";   //로그파일 저장 디렉토리 절대경로 (필수)
    public static final String APPENDER_LOG_FILENAME     = "appender.log.filename";    //로그파일 명 (필수)
    public static final String APPENDER_DATE_PATTERN     = "appender.date.pattern";    //로그파일 날자별 생성 규칙 (선택, 디폴트 "'.'yyyy-MM-dd")
    public static final String APPENDER_PATTERN_LAYOUT   = "appender.pattern.layout";  //로그 패턴 문자열 (선택, 디폴트 "[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5p %m%n")
    public static final String APPENDER_FILE_APPEND      = "appender.file.append";     //로그파일 로그Append 여부 (가질수있는 값 : true, false) (선택, 디폴트 true)
    public static final String MAX_BACKUP_INDEX	         = "max.backup.index";
    public static final String LOG_FILE_COUNT	         = "log.file.count";		// 사이즈별로 만든 파일을 유지할 개수
    public static final String FILE_SIZE	         = "file.size";			// 이 용량보다 크면 파일을 분리함
    public static final String LOG_DIRECOTRY_PREFIX	="log.directory.prefix";

    public static final String LOGGER_LIST		="logger.list";
    public static final String APPENDER_LIST	="appender.list";
    /** 기관별 로거 */
    String LOGGER_INST				 = "FileLogger{INST}";
    /** 기관별 appender */
    String APPENDER_INST			 = "FileAppender{INST}";
    /** 기관별 로그 프라퍼티 */
    String INST_LOG					 = "inst.log";
    
    /**
     * FileAppender
     */
    public static final String LOG_FILE		    ="log.file";
    public static final String DATE_PATTERN	    ="date.pattern";
    public static final String APPEND		    ="append";
    
    public static final String ADITIVITY	="aditivity";
    public static final String LOG_LEVEL	="log.level";
    public static final String CONSOLE		="console";
    public static final String APPENDER		="appender";
    public static final String SMS_INTERVAL = "sms.interval.mi";	// sms logging interval(minute)
    
    public static final String CONSOLE_APPENDER = "Appender{CONSOLE}";
    
    public static final String LOG_ON = "on";
    public static final String LOG_OFF = "off";
    
    public static final String TRACE    = "trace";
    public static final String DEBUG    = "debug";
    public static final String INFO     = "info";
    public static final String WARN     = "warn";
    public static final String ERROR    = "error";
    public static final String FATAL    = "fatal";
}
