log_format은 NGINX에서 로그 출력 형식을 정의하는 지시어입니다. 이를 사용하면 로그 파일에 출력되는 정보의 형식을 커스터마이징할 수 있습니다.
log_format 지시어를 사용하는 방법은 다음과 같습니다.
http {
...
log_format my_log_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
...
}
위의 예제에서 log_format 지시어는 my_log_format이라는 이름을 가지고 있습니다. 이 이름은 해당 로그 출력 형식을 식별하는 데 사용됩니다.
로그 형식 문자열에서 $remote_addr, $remote_user, $time_local 등은 로그 파일에 출력될 필드를 정의합니다. 이 필드는 다음과 같습니다.
$remote_addr: 클라이언트 IP 주소
$remote_user: 인증된 사용자 이름 (없으면 '-')
$time_local: 로컬 타임존에 따른 현재 시간 (형식: [dd/MMM/yyyy:HH:mm:ss +zzzz])
$request: 요청 메소드, 요청 URL 및 HTTP 버전
$status: HTTP 상태 코드
$body_bytes_sent: 클라이언트로 전송된 응답 바이트 수
$http_referer: 이전 페이지 URL
$http_user_agent: 사용자 에이전트 문자열
각 필드는 로그 출력 형식에 포함시키거나 제외시킬 수 있습니다. 필요한 필드를 조합하여 로그 형식 문자열을 구성하면 됩니다.
log_format 지시어에서 정의한 로그 형식 문자열은 access_log 지시어에서 사용할 수 있습니다. access_log 지시어는 로그 파일에 기록되는 접근 로그의 위치와 로그 형식을 설정합니다.
http {
...
log_format my_log_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
...
server {
...
access_log /var/log/nginx/access.log my_log_format;
...
}
}
위의 예제에서 access_log 지시어는 /var/log/nginx/access.log 파일에 접근 로그를 기록합니다. 또한, my_log_format 로그 형식을 사용합니다.
따라서, log_format 지시어를 사용하여 로그 출력 형식을 정의하고, access_log 지시어에서 해당 로그 형식을 사용하여 접근 로그를 기록하면 됩니다.
'WEB,WAS' 카테고리의 다른 글
[Nginx] nginx websocket 통신을 위한 설정방법 (1) | 2023.06.13 |
---|---|
[DB] postgresql 데이터 마이그레이션 방법 (1) | 2023.05.23 |
[WEB/WAS] Nginx 모니터링 방법 (2) | 2023.05.17 |
[WEB/WAS] nginx conf 파일에서 취약점 조치 사항 (2) | 2023.05.15 |
[WEB/WAS] Nginx subdomain 추출 방법 (정규식, map) (1) | 2023.05.14 |