컴파일러서비스를 통해 어디서 누가 호출을 했는지 확인 할 수 있습니다.

로그를 남길 때 별도의 호출 함수 양식을 작성하지 않고도 사용할 수 있는 방법입니다!

 

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); 를 통해

년-월-일 시:분:초

를 정의할 수도 있습니다. 아래는 호출 예제입니다.

 

using System;
using System.Windows.Forms;
using System.Runtime.CompilerServices; //[Caller 사용]

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        Test test = new Test();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            test.ShowCaller();
            Log("로그 내용");
        }
        
        private void Log (string message, [CallerMemberName] string name = "")
        {
            string log = string.Format("{0} [{1}] : {2}{3}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), name, message, Environment.NewLine);
            MessageBox.Show(log);
        }
    }

    class Test
    {
        public void ShowCaller([CallerMemberName] string name = "", [CallerFilePath] string path = "", [CallerLineNumber] int line = 0)
        {
            MessageBox.Show("name : " + name + "\n" +
                            "path : " + path + "\n" +
                            "line : " + line);
        }
    }
}

대충 만든 폼! ㅎㅎ

 

test.ShowCaller() 내부의 메시지박스

 

Log("로그 내용") 내부의 메시지 박스

 

+ Recent posts