디버깅이란?
Debugging. 에플리케이션의 오류를 제거하거나 억제하는 행위
로그란?
log. 에플리케이션의 상태를 관찰할 수 있도록 에플리케이션이 제공하는 정보
CodeIgniter와 로깅
CI는 로그를 원하는 디렉토리에 출력해주는 기능을 가지고 있다. 이 기능을 활성화하기 위해서는 application/config/config.php의 $config['log_threshold'] 기능을 수정해야 한다. 이 설정에 올 수 있는 값은 아래와 같다.
- 0 = 로깅을 비활성화
- 1 = 에러로그만 기록
- 2 = 디버그 로그도 기록
- 3 = 정보 로그도 기록
- 4 = 모든 메시지를 기록
log_threshold의 값을 1이상으로 지정하면 application/logs 디렉토리 하위에 로깅 파일이 생성될 것이다.
로그 파일의 열람
리눅스나 OSX를 사용하고 있다면 tail 명령을 이용하면 편리하다. 사용 방법은 아래와 같다. 아래의 명령을 사용하면 로그파일의 마지막으로 추가된 내용을 실시간으로 화면에 출력해준다.
tail -f 로그파일명
특정한 문자열을 포함한 로그만 열람하고 싶다면 아래와 같이 한다.
tail -f 로그파일명 | grep topic
로그의 이용
log_message(로그타입, 로그메시지);
예제
차이점
코드
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Topic extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); $this->load->model('topic_model'); log_message('debug', 'topic 초기화'); } function index(){ $this->_head(); $this->load->view('main'); $this->load->view('footer'); } function get($id){ log_message('debug', 'get 호출'); $this->_head(); $topic = $this->topic_model->get($id); if(empty($topic)){ log_message('error', 'topic의 값이 없습니다'); show_error('topic의 값이 없습니다'); } $this->load->helper(array('url', 'HTML', 'korean')); log_message('debug', 'get view 로딩'); $this->load->view('get', array('topic'=>$topic)); log_message('debug', 'footer view 로딩'); $this->load->view('footer'); } function add(){ $this->_head(); $this->load->library('form_validation'); $this->form_validation->set_rules('title', '제목', 'required'); $this->form_validation->set_rules('description', '본문', 'required'); if ($this->form_validation->run() == FALSE) { $this->load->view('add'); } else { $topic_id = $this->topic_model->add($this->input->post('title'), $this->input->post('description')); $this->load->helper('url'); redirect('/topic/get/'.$topic_id); } $this->load->view('footer'); } function _head(){ $this->load->config('opentutorials'); $this->load->view('head'); $topics = $this->topic_model->gets(); $this->load->view('topic_list', array('topics'=>$topics)); } } ?>
태그
태그명 : Log2
태그주소 : https://github.com/egoing/codeigniter_codeingeverbody/tree/Log2