내밥줄/프로그래밍

[펌] variadic macro __VA_ARGS__ 를 이용한 간단한 로그 매크로

jjoell 2009. 1. 29. 10:55

 


개발도중 주석을 쓰느니 로그를 많이 남기는 편인데 항상 비슷한 코드들을 쓰게 되길래 걍 적어둔다. 나중에 필요하면 바로 베낄수 있도록.

#if 1
# define LOG(...) do { fprintf(stdout, "[LOG] " __VA_ARGS__); } while(0) // 일반적인 로그를 남길때
# define ERR(...) do { fprintf(stdout, "[ERR] " __VA_ARGS__); } while(0) // 에러를 남길때
# define WRN(...) do { fprintf(stdout, "[WRN] " __VA_ARGS__); } while(0) // 에러는 아니고 그냥 넘기기는 그런 것들
# define XXX(...) do { fprintf(stdout, "[XXX] " __VA_ARGS__); } while(0) // 이건 한창 디버깅중일때 일시적으로만
#else
# define LOG(...) do {} while(0)
# define ERR(...) do {} while(0)
# define WRN(...) do {} while(0)
# define XXX(...) do {} while(0)
#endif



로그를 너무 많이 찍어대서 눈에 잘 안보이면 안시코드를 쓰던가 하자.
fprintf(stdout, "\e[1;7m[ERR]\e[0m " __VA_ARGS__);
요딴식으로..

 

출처: http://yoonkn.textcube.com/43