코드를 작성하다 보면 Log를 남겨 프로그램 오류나 이상 행동에 대한 분석을 해야 할 때가 있습니다.
이때 파일 이름, 함수 이름, 라인 넘버는 매우 중요한 부분입니다.
C#에서는 이러한 정보들을 쉽게 얻을 수 있도록 CallerFilePath, CallerMemberName, CallerLineNumber라는 Attribute들을 제공하고 있습니다
각 Attribtue의 역할
- CallerFileName : 호출 파일의 전체 경로
- CallerMemberName : 호출 메서드나 속성의 이름
- CallerLineNumber : 호출된 코드의 줄 번호
위 Attribute들을 사용하려면 아래의 Namespace가 추가해야 합니다.
using System.Runtime.CompilerServices;
아래는 간단한 예제 코드입니다.
public static class Logger
{
public static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerMemberName] string memberName = "",
[CallerLineNumber] int lineNumber = 0)
{
Console.WriteLine($"[{DateTime.Now}] {message}\nFile: {filePath}\nMember: {memberName}\nLine: {lineNumber}\n");
}
}
// 호출 코드
Logger.Log("An error occurred.");
위 코드를 실행을 하면 다음과 같은 결과가 출력됩니다.
[2025-01-25] An error occurred.
File: C:\Users\YourUserName\Projects\YourProject\Program.cs
Member: Main
Line: 30
이와 같이 로그에 상세한 정보를 포함하면 디버깅 시 오류나 이상 발생 지점을 정확하게 파악할 수 있습니다.
댓글
댓글 쓰기