- 재활용성 : 파라메터는 최대한 줄이고 기능을 단순화 시킬 것
- 로그정보에 출력할 데이터는, 일자&접속처&케이스나모듈명&에러종류&메세지 임
- 가능하면 한줄로 출력할 것
- 래퍼 함수를 이용해서 케이스 이름 등을 추가해서 인쇄 가능하게 할 것
- 함수명에는 앞에 _를 붙여서 외부나 브라우저에서 읽지 못하게 하는 것이 안전함
- 로그를 남기는 경로는 풀 패스를 기록하는 것이 좋으며 상수화 시키면 편리함 ok
- 로그를 출력할 때 시간은 반드시 함수 안에서 현재시간을 찍을 것, 상수화 시키면 안 된다.
- 로그를 출력하는 순서는 처리과정에 따라서 시작 -> 처리 -> 종료 -> 리다이렉트경로? 같은 식으로 순서를 남기는 것이 알기 쉬움.
// 사용법 -> 어떤 기능이나 함수 실행 시 다음과 같이 시작과 끝을 명기할 것
$this->_putLog(LG_INFO, '<IN>', __CLASS__, __FUNCTION__);
$this->_putLog(LG_WARNING, 'authorization キーがない');
$this->_putLog(LG_INFO, '<OUT*>', __CLASS__, __FUNCTION__);
// 操作ログ (예제)
function _putLog($f_level = LG_INFO, $s_msg = null, $s_class = null, $s_func = null) {
$levels = array(
LG_ERROR => 'error :',
LG_WARNING => 'warning:',
LG_NOTICE => 'notice:',
LG_MODEL => 'model: ',
LG_INFO => 'info: ',
LG_TRACE => 'trace: '
);
$cont_no = (isset($this->loginInfo['contract_no']))? $this->loginInfo['contract_no'] : 'unknown';
$login_cd = (isset($this->loginInfo['login_code']))? $this->loginInfo['login_code'] : 'unknown';
$msg = sprintf('%s %s:%s', $levels[$f_level], $cont_no, $login_cd);
if ($s_class !== null) {
$msg = $msg.sprintf(' [%s:%s]', $s_class, $s_func);
}
if ($s_msg !== null) {
$msg = $msg.' '.$s_msg;
}
$this->opeLog($msg);
}
}
댓글
댓글 쓰기