컴퓨터활용/유닉스

로그파일 쓰기 C, macro 예제

멜번초이 2005. 10. 25. 23:58
반응형
파일에 로그 쓰기 예제

#define FCL_PRINT_LOG(_msg1,_msg2) do {   \
    char _str[200];                     \
    char _dt[16+1];                     \
    char _date[8+1];                    \
    char _fname[60];                    \
                                        \
    bzero(_str, 200 );                  \
    bzero(_dt,   17 );                  \
    bzero(_date,  9 );                  \
    bzero(_fname,60 );                  \
                                        \
    mpfm_get_date_time(_str);           \
    strncpy( _date, _str, 8);           \
    if( !strncmp("TestAutoSystem", PFM_TRAN->svc_nm, 14) ) { \
        sprintf( _fname, "/nbslog/fap/bat/autotest.log.%s", _date ); \
    } else { \
        sprintf( _fname, "/nbslog/fap/bat/access.log.%s", _date ); \
    } \
                                        \
    memcpy(_dt, _str, 8);               \
    memcpy(_dt+8, ":", 1);              \
    memcpy(_dt+9, _str+8, 6);           \
                                        \
    sprintf(_str, "%s|%s|%s|%s|%s\n", _dt, __FILE__,PFM_TRAN->svc_nm,_msg1, _msg2); \
                                        \
    FILE *_fp;                          \
    if((_fp = fopen(_fname, "ab" ))!= NULL) { \
        fwrite(_str, strlen(_str), 1, _fp); \
        fclose(_fp); \
    } \
    sprintf( _str, "chmod 777 %s 2>/dev/null", _fname ); \
    system(_str); \
    } while(0)
반응형

'컴퓨터활용 > 유닉스' 카테고리의 다른 글

쉘에서 문자열 조작하기  (0) 2008.02.28
VI 에디터 120% 사용하기  (0) 2007.12.18
awk를 이용한 substr  (0) 2007.03.11
.vimrc  (0) 2007.03.07
sed를 이용한 문자열 치환  (1) 2006.10.11