로거 미들웨어
단순한 로거 기능을 제공한다.
Import
ts
import { Hono } from 'hono'
import { logger } from 'hono/logger'사용법
ts
const app = new Hono()
app.use(logger())
app.get('/', (c) => c.text('Hello Hono!'))로깅 상세 정보
로거 미들웨어는 각 요청에 대해 다음과 같은 세부 정보를 기록한다:
- 수신 요청: HTTP 메서드, 요청 경로, 그리고 수신 요청을 기록한다.
- 발신 응답: HTTP 메서드, 요청 경로, 응답 상태 코드, 그리고 요청/응답 시간을 기록한다.
- 상태 코드 색상 표시: 응답 상태 코드는 가시성을 높이고 상태 카테고리를 빠르게 식별할 수 있도록 색상으로 표시된다. 각 상태 코드 카테고리는 다른 색상으로 표현된다.
- 소요 시간: 요청/응답 주기에 걸린 시간을 밀리초(ms) 또는 초(s) 단위로 사람이 읽기 쉬운 형식으로 기록한다.
로거 미들웨어를 사용하면 Hono 애플리케이션에서 요청과 응답의 흐름을 쉽게 모니터링할 수 있으며, 문제나 성능 병목 현상을 빠르게 식별할 수 있다.
또한, 커스텀 로깅 동작을 위해 PrintFunc 함수를 제공하여 미들웨어를 더 확장할 수도 있다.
PrintFunc
Logger 미들웨어는 선택적 PrintFunc 함수를 매개변수로 받는다. 이 함수를 사용하면 로거를 커스터마이징하고 추가 로그를 작성할 수 있다.
옵션
optional fn: PrintFunc(str: string, ...rest: string[])
str: 로거가 전달하는 문자열...rest: 콘솔에 출력할 추가 문자열 인자들
예제
Logger 미들웨어에 커스텀 PrintFunc 함수를 설정하는 방법:
ts
export const customLogger = (message: string, ...rest: string[]) => {
console.log(message, ...rest)
}
app.use(logger(customLogger))라우트에서 커스텀 로거를 설정하는 방법:
ts
app.post('/blog', (c) => {
// 라우팅 로직
customLogger('Blog saved:', `Path: ${blog.url},`, `ID: ${blog.id}`)
// 출력
// <-- POST /blog
// Blog saved: Path: /blog/example, ID: 1
// --> POST /blog 201 93ms
// Context 반환
})