본문 바로가기
개발 업무(코딩)-개발자였을때 썼던..

나만의 로그파일 만들기(LOG)

by 주용사 2023. 1. 8.
728x90

가변인자로 만든 로그파일 소스이다. 수정해서 더 다듬어도 될꺼같다.

va_list를 사용하려면 #include <stdarg.h> 를 추가해야한다.

로그파일을 만든이유는 데몬프로세스가 죽는데 이유를 모르겠어서 원인을 찾기 위함이다.

사용법 ex)

MYLOG("[%d] failed why? [%s]\n", __LINE__, mysql_error(pConn) );

void MYLOG(char *msg, ...)
{
    FILE *fp;
    fp = fopen("/home/changjo/my_log", "a");

    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    char buffer[1024];
    memset(buffer, 0x00, sizeof(buffer));
    va_list ap;
    va_start(ap, msg);
    vsnprintf(buffer, sizeof(buffer), msg,  ap);
    va_end(ap);

    fprintf(fp, "[%d-%02d-%02d %02d:%02d:%02d][%s]\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, buffer);

    fclose(fp);
}
728x90