Go Language High Performance Library Zap 자세한 설명 및 응용 프로그램
이 기사는 Uber가 개발 한 고성능 GO 로그 라이브러리 ZAP를 탐색하여 특성, 사용 방법 및 로그 파일 부서 및 레벨 출력과 같은 고급 응용 프로그램을 다루고 있습니다. ZAP는 속도와 구조화 된 로그 출력으로 유명합니다.
github 주소 :
예제 제작
Zap은 로거 인스턴스를 생성하는 세 가지 방법의 세 가지 방법을 제공합니다 : , . 차이점은 정보의 세부 사항을 기록하고 매개 변수 유형이 문자열로 제한된다는 것입니다.
세 가지 생성 방법 비교 :
JSON 형식 출력을 사용하여 및
라인 형식 출력을 사용하십시오.
개발 zap.NewProduction() 추적을 위해 경고 수준에서 스택 정보 인쇄를 시작하십시오. zap.NewDevelopment() 항상 인쇄 된 패키지/파일/줄 번호 (메소드). zap.Example() 테일에 JSON 문자열로 추가 필드를 추가하십시오.
millisecond -Level ISO8601 형식을 사용하여 타임 스탬프를 인쇄하십시오.
<code>// Example 输出
{"level":"debug","msg":"这是一条DEBUG信息"}
{"level":"info","msg":"这是一条INFO信息"}</code>
로그인 후 복사
로그인 후 복사
<code>// Development 输出
2025-01-28T00:00:00.000+0800 DEBUG development/main.go:7 这是一条DEBUG信息
2025-01-28T00:00:00.000+0800 INFO development/main.go:8 这是一条INFO信息</code>
로그인 후 복사
로그인 후 복사
<code>// Production 输出
{"level":"info","ts":1737907200.0000000,"caller":"production/main.go:8","msg":"这是一条INFO信息"}
{"level":"info","ts":1737907200.0000000,"caller":"production/main.go:9","msg":"这是一条包含字段的INFO信息","region":["us-west"],"id":2}</code>
로그인 후 복사
로그인 후 복사
생산
디버깅 레벨 뉴스에 대한 기록이 없습니다.
오류 및 공황 레코드의 경우 스택의 파일이 추적되지만 경고 레벨은 그렇지 않습니다.
항상 발신자의 파일 정보를 추가하십시오. Example
타임 스탬프 형식의 인쇄 날짜. Production 소문자 이름을 인쇄하십시오. Development
형식 출력
zap은 와 의 두 가지 로거 유형을 제공합니다. 차이점은 메인 로거의 메소드를 호출하여
를 얻고이를 사용하여 printf 형식으로 문을 기록 할 수 있다는 것입니다.
파일을 로 작성하십시오
기본적으로 응용 프로그램 콘솔에 로그 출력을 출력하십시오. 문의를 용이하게하기 위해 로그를 파일에 기록 할 수 있습니다. 현재, 앞에서 언급 한 인스턴스를 생성하는 세 가지 방법은 사용할 수 없지만
.
콘솔에 출력하고 동시에 파일을 제출 해야하는 경우 만 수정하면됩니다. 다음과 같이 예 :
파일 세그먼트
로그 파일은 시간이 지남에 따라 점점 커질 것입니다. 많은 수의 디스크 공간을 차지하지 않으려면 특정 조건에 따라 로그 파일이 필요합니다. Zap 자체는 파일 분할 기능을 제공하지 않지만 Zap에서 권장하는 Lumberjack 패키지를 사용하여 달성 할 수 있습니다.