ASP.NET Core

ASP.NET Core_ILogger vs ZLogger

Wally's 2023. 5. 2. 15:37

ASP.NET Core의 기본 로깅은 ILogger 인터페이스와 ILoggerProvider 인터페이스를 사용하여 로깅을 구현한다.

ILoggerProvider 인터페이스는 ILogger 인터페이스를 생성하기 위한 팩토리 역할을 하며,

ILogger 인터페이스는 로그 레벨, 메시지, 예외 등의 정보를 받아서 로그를 기록하는 역할을 한다.

 

반면, ZLogger는 ILoggerProvider 인터페이스를 상속받은 ZLoggerProvider 클래스와

ILogger 인터페이스를 상속받은 ZLogger 클래스를 제공한다.

ZLoggerProvider 클래스는 ZLogger를 생성하기 위한 팩토리 역할을 하며,

ZLogger 클래스는 ILogger 인터페이스와 비슷하지만, 더 많은 로깅 기능과 유연성을 제공한다.

 

주요한 차이점 : 

- 성능:

ZLogger는 기존의 ILogger보다 더 높은 성능을 제공한다. 

ZLogger가 Formatter를 메모리 풀링(memory pooling)을 이용하여 최적화하기 때문이다.

 

- 구조적 로깅:

ZLogger는 구조적 로깅(structured logging)을 지원한다.

구조적 로깅은 로그 메시지에 구조적인 정보를 추가하여 로그 데이터를 검색, 분석, 시각화하기 쉽도록 만드는 방법이다.

 

- 메시지 포맷터 :

ZLogger는 메시지 포맷터(message formatter)를 지원한다.

이는 로그 메시지의 출력 형식을 사용자 정의할 수 있는 기능을 제공한다.

 

- 로그 파일 분할 :

ZLogger는 로그 파일을 분할하는 기능을 제공합니다.

이는 로그 파일의 크기나 날짜에 따라 로그 파일을 자동으로 분할할 수 있도록 한다.

 

- 기본 값 :

 ZLogger는 기본 값(default value)을 사용하여 로그 데이터에 쉽게 접근할 수 있도록 지원한다.

 

따라서, ZLogger는 기존의 ILogger보다 더 많은 기능과 유연성을 제공하며, 높은 성능과 구조적 로깅 기능을 지원한다.

 

ZLogger의 주요한 장점 : 

- 높은 성능: 

 ZLogger는 Formatter를 메모리 풀링(memory pooling)을 이용하여 최적화하였기 때문에,

기존의 ILogger에 비해 더 높은 성능을 제공한다.

 

 

- 구조적 로깅: 

ZLogger는 구조적 로깅(structured logging)을 지원합니다.

이는 로그 메시지에 구조적인 정보를 추가하여 로그 데이터를 검색, 분석, 시각화하기 쉽도록 만드는 방법입니다.

이를 통해 개발자는 더 많은 정보를 로그로 남길 수 있으며, 로그 분석 및 디버깅에 있어서 유용합니다.

 

- 메시지 포맷터: 

ZLogger는 메시지 포맷터(message formatter)를 지원합니다.

이는 로그 메시지의 출력 형식을 사용자 정의할 수 있는 기능을 제공합니다.

개발자는 필요한 로그 데이터를 로그 메시지에 추가하고, 메시지 포맷터를 사용하여 로그 출력 형식을 지정할 수 있습니다.

 

로그 파일 분할:

ZLogger는 로그 파일을 분할하는 기능을 제공합니다.

이는 로그 파일의 크기나 날짜에 따라 로그 파일을 자동으로 분할할 수 있도록 합니다.

이를 통해 로그 파일의 크기를 줄이고, 로그 파일 관리를 용이하게 할 수 있습니다.

 

-기본 값: 

ZLogger는 기본 값(default value)을 사용하여 로그 데이터에 쉽게 접근할 수 있도록 지원합니다.

개발자는 로그 메시지에 필요한 데이터를 추가할 때, 기본 값을 사용하여 로그 데이터에 쉽게 접근할 수 있습니다.

 

-  다양한 로그 출력 방식: 

ZLogger는 다양한 로그 출력 방식을 지원합니다.

개발자는 필요에 따라 콘솔, 파일, Elasticsearch 등 다양한 방식으로 로그를 출력할 수 있습니다.

 

ZLogger는 높은 성능과 구조적 로깅, 메시지 포맷터, 로그 파일 분할, 기본 값 등

다양한 기능을 제공하여 개발자가 로그를 더욱 효율적으로 관리하고 분석할 수 있도록 합니다.

'ASP.NET Core' 카테고리의 다른 글

Ngrok사용_ASP.NET Core API 테스트  (2) 2023.07.06