로그 기록

로그 파일 목록 (최근 5개)
log-2026-06-06.log 21,665 B
log-2026-06-05.log 16,096 B
log-2026-06-04.log 38,427 B
log-2026-06-03.log 16,188 B
log-2026-06-02.log 34,756 B
최근 로그 (최대 30줄)
레벨시각메시지
12 FCPATH/index.php(59): CodeIgniter\Boot::bootWeb()
11 SYSTEMPATH/Boot.php(68): CodeIgniter\Boot::runCodeIgniter()
10 SYSTEMPATH/Boot.php(417): CodeIgniter\CodeIgniter->run()
9 SYSTEMPATH/CodeIgniter.php(363): CodeIgniter\CodeIgniter->handleRequest()
8 SYSTEMPATH/CodeIgniter.php(520): CodeIgniter\CodeIgniter->runController()
7 SYSTEMPATH/CodeIgniter.php(974): App\Controllers\Examples\Sse->index()
6 APPPATH/Controllers/Examples/Sse.php(11): view()
5 SYSTEMPATH/Common.php(1254): CodeIgniter\View\View->render()
4 SYSTEMPATH/View/View.php(256): CodeIgniter\View\View->render()
3 SYSTEMPATH/View/View.php(243): CodeIgniter\View\View->{closure:CodeIgniter\View\View::render():237}()
2 SYSTEMPATH/View/View.php(240): include('/home/blumine/ci4-playground/app/Views/layouts/main.php')
1 APPPATH/Views/layouts/main.php(118): CodeIgniter\Debug\Exceptions->errorHandler()
in APPPATH/Views/layouts/main.php on line 118.
[Method: GET, Route: examples/sse]
CRITICAL 2026-06-06 22:43:08 ErrorException: Undefined variable $title
12 FCPATH/index.php(59): CodeIgniter\Boot::bootWeb()
11 SYSTEMPATH/Boot.php(68): CodeIgniter\Boot::runCodeIgniter()
10 SYSTEMPATH/Boot.php(417): CodeIgniter\CodeIgniter->run()
9 SYSTEMPATH/CodeIgniter.php(363): CodeIgniter\CodeIgniter->handleRequest()
8 SYSTEMPATH/CodeIgniter.php(520): CodeIgniter\CodeIgniter->runController()
7 SYSTEMPATH/CodeIgniter.php(974): App\Controllers\Examples\PdfGeneration->index()
6 APPPATH/Controllers/Examples/PdfGeneration.php(25): view()
5 SYSTEMPATH/Common.php(1254): CodeIgniter\View\View->render()
4 SYSTEMPATH/View/View.php(256): CodeIgniter\View\View->render()
3 SYSTEMPATH/View/View.php(243): CodeIgniter\View\View->{closure:CodeIgniter\View\View::render():237}()
2 SYSTEMPATH/View/View.php(240): include('/home/blumine/ci4-playground/app/Views/layouts/main.php')
1 APPPATH/Views/layouts/main.php(118): CodeIgniter\Debug\Exceptions->errorHandler()
in APPPATH/Views/layouts/main.php on line 118.
[Method: GET, Route: examples/pdfgeneration]
CRITICAL 2026-06-06 22:29:44 ErrorException: Undefined variable $title
log_message() — PSR-3 레벨

CI4는 PSR-3 표준을 따르는 8단계 로그 레벨을 지원합니다. 낮을수록 상세, 높을수록 심각합니다.

DEBUG 상세 디버그 정보. 개발 중에만 사용.
INFO 일반 정보성 메시지.
NOTICE 정상이지만 주목할 만한 이벤트.
WARNING 오류는 아니지만 주의 필요.
ERROR 즉각 조치가 필요한 런타임 오류.
CRITICAL 심각한 조건 (컴포넌트 사용 불가 등).
ALERT 즉각 행동이 필요 (DB 다운 등).
EMERGENCY 시스템 전체 사용 불가 상태.
기본 사용 예시
// 헬퍼 함수로 간단하게 기록
log_message('info',  '사용자 로그인: user_id=42');
log_message('error', '결제 실패: ' . $e->getMessage());

// 플레이스홀더 사용 (PSR-3 스타일)
log_message('warning', '잔액 부족: user={user}, balance={balance}', [
    'user'    => $user->name,
    'balance' => $user->balance,
]);

// Logger 서비스 직접 사용
$logger = service('logger');
$logger->info('주문 완료', ['order_id' => $orderId]);
$logger->critical('DB 연결 실패');
로그 파일 위치: writable/logs/log-YYYY-MM-DD.log
로그 임계값 설정보다 낮은 레벨은 기록되지 않습니다 (Config/Logger.php$threshold).
app/Config/Logger.php 설정
// app/Config/Logger.php

public int $threshold = 4; // 4 이상 레벨만 기록 (WARNING~EMERGENCY)
                            // 0 = 모두 기록, 9 = 기록 안 함

// 핸들러 설정
public array $handlers = [
    // 파일 핸들러 (기본)
    'CodeIgniter\Log\Handlers\FileHandler' => [
        'handles' => ['critical', 'alert', 'emergency', 'debug',
                      'error', 'info', 'notice', 'warning'],
        'path'    => WRITEPATH . 'logs/',
        'fileExtension' => 'log',
        'filePermissions' => 0644,
        'dateFormat'      => 'Y-m-d H:i:s',
    ],

    // ChromeLogger (개발 도구 콘솔 출력)
    // 'CodeIgniter\Log\Handlers\ChromeLoggerHandler' => [
    //     'handles' => ['debug', 'info'],
    // ],
];
개발 환경에서 모든 로그 기록 (.env)
# .env
logger.threshold = 0  # 모든 레벨 기록
운영 환경에서는 threshold = 4 (WARNING 이상)를 권장합니다. DEBUG 레벨을 운영에 두면 민감한 정보가 로그에 남을 수 있습니다.