반응형
파일에 로그 쓰기 예제
#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)
#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 |