fix: add runtime logging for code-kind lookup failures
Capture detailed runtime context when /bag/code-kinds and /bag/code-details fail so production logs reveal the exact exception source and request/session scope.
This commit is contained in:
@@ -349,14 +349,28 @@ class Bag extends BaseController
|
||||
{
|
||||
$kindModel = model(CodeKindModel::class);
|
||||
$detailModel = model(CodeDetailModel::class);
|
||||
$kinds = $kindModel->orderBy('ck_code', 'ASC')->findAll();
|
||||
$lgIdx = $this->lgIdx();
|
||||
$kinds = [];
|
||||
$countMap = [];
|
||||
$lgIdx = $this->lgIdx();
|
||||
try {
|
||||
$kinds = $kindModel->orderBy('ck_code', 'ASC')->findAll();
|
||||
foreach ($kinds as $row) {
|
||||
$countMap[$row->ck_idx] = (int) $detailModel->where('cd_ck_idx', $row->ck_idx)
|
||||
->filterByTenantScope($lgIdx)
|
||||
->countAllResults();
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
log_message('error', '[codeKinds] 실패: {type} {message} @ {file}:{line} / lg={lg}, user={user}, level={level}', [
|
||||
'type' => $e::class,
|
||||
'message' => $e->getMessage(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine(),
|
||||
'lg' => $lgIdx !== null ? (string) $lgIdx : 'null',
|
||||
'user' => (string) (session()->get('mb_id') ?? ''),
|
||||
'level' => (string) (session()->get('mb_level') ?? ''),
|
||||
]);
|
||||
session()->setFlashdata('error', '기본코드 조회 중 오류가 발생했습니다. 관리자에게 로그 확인을 요청해 주세요.');
|
||||
}
|
||||
|
||||
$level = (int) session()->get('mb_level');
|
||||
|
||||
@@ -374,18 +388,46 @@ class Bag extends BaseController
|
||||
{
|
||||
$kindModel = model(CodeKindModel::class);
|
||||
$detailModel = model(CodeDetailModel::class);
|
||||
$kind = null;
|
||||
try {
|
||||
$kind = $kindModel->find($ckIdx);
|
||||
} catch (\Throwable $e) {
|
||||
log_message('error', '[codeDetails] kind 조회 실패: {type} {message} @ {file}:{line} / ck={ck}, user={user}, level={level}', [
|
||||
'type' => $e::class,
|
||||
'message' => $e->getMessage(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine(),
|
||||
'ck' => (string) $ckIdx,
|
||||
'user' => (string) (session()->get('mb_id') ?? ''),
|
||||
'level' => (string) (session()->get('mb_level') ?? ''),
|
||||
]);
|
||||
return redirect()->to(site_url('bag/code-kinds'))->with('error', '세부코드 조회 중 오류가 발생했습니다. 관리자에게 로그 확인을 요청해 주세요.');
|
||||
}
|
||||
if ($kind === null) {
|
||||
return redirect()->to(site_url('bag/code-kinds'))->with('error', '코드 종류를 찾을 수 없습니다.');
|
||||
}
|
||||
|
||||
$lgIdx = $this->lgIdx();
|
||||
try {
|
||||
$list = $detailModel->where('cd_ck_idx', $ckIdx)
|
||||
->filterByTenantScope($lgIdx)
|
||||
->orderBy('cd_sort', 'ASC')
|
||||
->orderBy('cd_idx', 'ASC')
|
||||
->paginate(20);
|
||||
$pager = $detailModel->pager;
|
||||
} catch (\Throwable $e) {
|
||||
log_message('error', '[codeDetails] list 조회 실패: {type} {message} @ {file}:{line} / ck={ck}, lg={lg}, user={user}, level={level}', [
|
||||
'type' => $e::class,
|
||||
'message' => $e->getMessage(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine(),
|
||||
'ck' => (string) $ckIdx,
|
||||
'lg' => $lgIdx !== null ? (string) $lgIdx : 'null',
|
||||
'user' => (string) (session()->get('mb_id') ?? ''),
|
||||
'level' => (string) (session()->get('mb_level') ?? ''),
|
||||
]);
|
||||
return redirect()->to(site_url('bag/code-kinds'))->with('error', '세부코드 조회 중 오류가 발생했습니다. 관리자에게 로그 확인을 요청해 주세요.');
|
||||
}
|
||||
|
||||
helper('admin');
|
||||
$level = (int) session()->get('mb_level');
|
||||
|
||||
Reference in New Issue
Block a user