Share via


CA1848: LoggerMessage 대리자 사용

속성
규칙 ID CA1848
타이틀 LoggerMessage 대리자 사용
범주 성능
수정 사항이 주요 변경인지 여부 주요 변경 아님
.NET 8에서 기본적으로 사용 아니요

원인

로거 확장 메서드 사용(예: LogInformationLogDebug.

규칙 설명

고성능 로깅 시나리오의 경우 LoggerMessage 패턴을 사용합니다.

위반 문제를 해결하는 방법

이 규칙의 위반 문제를 해결하는 데 사용합니다 LoggerMessage .

LoggerMessage는 로거 확장 메서드에 비해 다음과 같은 성능 이점을 제공합니다.

  • 로거 확장 메서드는 object에 대한 int와 같은 "boxing"(변환) 값 형식이 필요합니다. 패턴은 LoggerMessage 강력한 형식의 매개 변수와 함께 정적 Action 필드 및 확장 메서드를 사용하여 boxing을 방지합니다.
  • 로거 확장 메서드는 로그 메시지가 기록될 때마다 메시지 템플릿(명명된 형식 문자열)을 구문 분석해야 합니다. LoggerMessage는 메시지가 정의될 때 템플릿 구문 분석이 한번만 필요합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

참고 항목