InfoGrab DocsInfoGrab Docs

로깅 개발 가이드라인

GitLab 개발 시 구조화된 JSON 로깅 사용 방법, 다중 목적지 로깅, 예외 처리, 로그 파일 위치 및 로깅 가시성 제어를 설명합니다.

GitLab 로그 는 관리자와 GitLab 팀원 모두가 현장에서 문제를 진단하는 데 중요한 역할을 합니다. Rails.logger를 사용하지 마세요 # 현재 Rails.logger 호출은 모두 production.log 에 저장되는데, 이 파일에는 Rails의 로그와 개발자가 코드베이스에 삽입한 다른 호출이 혼재되어 있습니다. 예를 들면 다음과 같습니다: Started GET "/gitlabhq/yaml_db/tree/master" for 168.111.56.1 at 2015-02-12 19:34:53 +0200 Processing by Projects::TreeController#show as HTML Parameters: {"project_id"=>"gitlabhq/yaml_db", "id"=>"master"} ... Namespaces"."created_at" DESC, "namespaces"."id" DESC LIMIT 1 [["id", 26]] CACHE (0.0ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = 'Project' AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $1 AND "members"."source_type" = $2 AND "members"."user_id" = 1 ORDER BY "members"."created_at" DESC, "members"."id" DESC LIMIT 1 [["source_id", 18], ["source_type", "Project"]] CACHE (0.0ms) SELECT "members".* FROM "members" WHERE "members"."source_type" = 'Project' AND "members". (1.4ms) SELECT COUNT(*) FROM "merge_requests" WHERE "merge_requests"."target_project_id" = $1 AND ("merge_requests"."state" IN ('opened','reopened')) [["target_project_id", 18]] Rendered layouts/nav/_project.html.haml (28.0ms) Rendered layouts/_collapse_button.html.haml (0.2ms) Rendered layouts/_flash.html.haml (0.1ms) Rendered layouts/_page.html.haml (32.9ms) Completed 200 OK in 166ms (Views: 117.4ms | ActiveRecord: 27.2ms) 이러한 로그에는 여러 가지 문제가 있습니다: 타임스탬프나 기타 컨텍스트 정보(예: 프로젝트 ID 또는 사용자)가 없는 경우가 많습니다. 여러 줄에 걸쳐 있어 Elasticsearch에서 찾기 어려울 수 있습니다. 공통 구조가 없어 Logstash나 Fluen