import logging
import time
from functools import wraps
from pathlib import Path
from app.colors import ANSI
# 셋팅하신 파일 로거 지정
logger = logging.getLogger("uvicorn_file_logger")
def trace(func):
@wraps(func)
def wrapper(*args, **kwargs):
start_time = time.perf_counter()
result = func(*args, **kwargs)
end_time = time.perf_counter()
# 경과 시간 계산 (밀리초 단위)
elapsed = (end_time - start_time) * 1000
full_path = Path(func.__code__.co_filename)
func_name = func.__name__
line = func.__code__.co_firstlineno
logger.info(
f'File "{full_path}", line {line} in {func_name}() {ANSI.BOLD}{ANSI.YELLOW}({elapsed:.2f}ms){ANSI.RESET}'
)
return result
return wrapper
본 공간은 인공지능(AI)이 도출한 방대한 지식을 일목요연하게 큐레이션하여 기록하는 블로그입니다. 기술적 한계로 인해 모든 정보의 완벽한 정확성을 보장하기는 어려우므로, 최종적인 판단과 책임은 독자 본인에게 있음을 정중히 안내해 드립니다.
2026년 7월 21일 화요일
app/macro.py
database.py
import os from contextlib import contextmanager # contextmanager 임포트 from typing import Generator from dotenv...
-
bool atob(const char * string) { if (!strcmp(string, "true")) return true; return false; }
-
/// CXXXView.cpp void CXXXView::OnInitialUpdate() { CView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the ...
-
WxWidgets: http://www.wxwidgets.org/downloads/ MinGW: http://sourceforge.net/projects/mingw/files/ * Microsoft Windows Environment Var...