Changeset 127 in libcf
- Timestamp:
- 06/18/13 16:48:52 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/cf_log.c
r125 r127 4 4 * \author vfire 5 5 * 6 * \brief ·Î±× ±¸Çö6 * \brief 로그 구현 7 7 */ 8 8 #if defined(_WIN32) || defined(_WIN64) … … 56 56 #define LOG_DATETIME_LENGTH sizeof ("0000-00-00 00:00:00.000") - 1 57 57 58 /** ·Î±× ÄÁÅؽºÆ®(Opaque) */58 /** 로그 컨텍스트 (Opaque) */ 59 59 typedef void * CF_Log_Ctx; 60 60 … … 72 72 } CF_LOG_DATETIME; 73 73 74 /** ·Î±× ÄÁÅؽºÆ® (CF_Log_CtxÀÇ ±¸Çö) */74 /** 로그 컨텍스트 (CF_Log_Ctx의 구현) */ 75 75 typedef struct __cf_log_ctx__ 76 76 { … … 173 173 174 174 snprintf (buffer, LOG_DATETIME_LENGTH, 175 "%0 2d-%02d-%02d %02d:%02d:%02d.%03d",175 "%04d-%02d-%02d %02d:%02d:%02d.%03d", 176 176 dt.year, dt.month, dt.day, 177 177 dt.hour, dt.min, dt.sec, dt.usec); … … 192 192 193 193 /** 194 * ·Î±× µ¥ÀÌÅÍ Ã³¸®195 * 196 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå197 * 198 * \param ctx ·Î±× ÄÁÅؽºÆ®199 * \param buffer ·Î±× µ¥ÀÌÅÍ200 * \param demandSize ·Î±× µ¥ÀÌÅÍ ±æÀÌ194 * 로그 데이터 처리 195 * 196 * \return 성공 시, CF_OK; 실패 시, 오류 코드 197 * 198 * \param ctx 로그 컨텍스트 199 * \param buffer 로그 데이터 200 * \param demandSize 로그 데이터 길이 201 201 * 202 202 * \author vfire … … 209 209 int result = CF_OK; 210 210 211 if (ctx->size > 0) /* ¹öÆÛ´ÜÀ§ ¹öÆÛ¸µ.... */211 if (ctx->size > 0) /* 버퍼단위 버퍼링.... */ 212 212 { 213 213 size_t writeSize; … … 228 228 } 229 229 } 230 else /* flush µÇ¾î¾ß ÇÔ. */230 else /* flush되어야 함. */ 231 231 { 232 232 ctx->buffer = (char *)buffer; … … 240 240 241 241 /** 242 * ·Î±× ÄÁÅؽºÆ®¿¡ ¸ÖƼ¾²·¹µå ¸ðµå ¼³Á¤243 * 244 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå245 * 246 * \param ctx ·Î±× ÄÁÅؽºÆ®242 * 로그 컨텍스트에 멀티쓰레드 모드 설정 243 * 244 * \return 성공 시, CF_OK; 실패 시, 오류 코드 245 * 246 * \param ctx 로그 컨텍스트 247 247 * 248 248 * \see CF_Log_UnsetMultiThread … … 262 262 263 263 /** 264 * ·Î±× ÄÁÅؽºÆ®¿¡ ¸ÖƼ¾²·¹µå ¸ðµå ¼³Á¤ ÇØÁ¦265 * 266 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå267 * 268 * \param ctx ·Î±× ÄÁÅؽºÆ®264 * 로그 컨텍스트에 멀티쓰레드 모드 설정 해제 265 * 266 * \return 성공 시, CF_OK; 실패 시, 오류 코드 267 * 268 * \param ctx 로그 컨텍스트 269 269 * 270 270 * \see CF_Log_SetMultiThread … … 286 286 287 287 /** 288 * ·Î±× ÄÁÅؽºÆ®¿¡ µû¶ó ·Î±× ¾²±â289 * 290 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå291 * 292 * \param ctx ·Î±× ÄÁÅؽºÆ®293 * \param prefix ·Î±×ÀÇ ÇÁ¸®ÇȽº ¹®ÀÚ¿294 * \param fmt Æ÷¸Ë ½ºÆ®¸µ295 * \param ... °¡º¯ ÀÎÀÚ288 * 로그 컨텍스트에 따라 로그 쓰기 289 * 290 * \return 성공 시, CF_OK; 실패 시, 오류 코드 291 * 292 * \param ctx 로그 컨텍스트 293 * \param prefix 로그의 프리픽스 문자열 294 * \param fmt 포맷 스트링 295 * \param ... 가변 인자 296 296 */ 297 297 static int … … 327 327 328 328 /** 329 * ·Î±× ¹öÆÛÀÇ µ¥ÀÌÅ͸¦ Áï½Ã ·Î±× ÆÄÀÏ¿¡ ¾²±â330 * 331 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå332 * 333 * \param ctx ·Î±× ÄÁÅؽºÆ®329 * 로그 버퍼의 데이터를 즉시 로그 파일에 쓰기 330 * 331 * \return 성공 시, CF_OK; 실패 시, 오류 코드 332 * 333 * \param ctx 로그 컨텍스트 334 334 */ 335 335 static int … … 348 348 349 349 /** 350 * ·Î±× ÄÁÅؽºÆ® ÇØÁ¦351 * 352 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå353 * 354 * \param ctx ·Î±× ÄÁÅؽºÆ®350 * 로그 컨텍스트 해제 351 * 352 * \return 성공 시, CF_OK; 실패 시, 오류 코드 353 * 354 * \param ctx 로그 컨텍스트 355 355 */ 356 356 static int … … 378 378 379 379 /** 380 * ·Î±× ÄÁÅؽºÆ® »ý¼º381 * 382 * \return ¼º°ø ½Ã, ·Î±× ÄÁÅؽºÆ®; ½ÇÆÐ ½Ã, NULL383 * 384 * \param ctx ·Î±× ÄÁÅؽºÆ® ÁÖ¼Ò385 * \param path ·Î±× ÆÄÀÏ °æ·Î386 * \param memsize ·Î±× ¹öÆÛ Å©±â380 * 로그 컨텍스트 생성 381 * 382 * \return 성공 시, 로그 컨텍스트; 실패 시, NULL 383 * 384 * \param ctx 로그 컨텍스트 주소 385 * \param path 로그 파일 경로 386 * \param memsize 로그 버퍼 크기 387 387 * 388 388 * \see CF_LOG_DEFAULT_BUFFER, CF_LOG_NO_BUFFER … … 443 443 444 444 /** 445 * ·Î±× ÄÁÅؽºÆ®¿¡ ¾ÆÀ̵ð ³Ñ¹ö ÇÒ´ç<br />446 * ·Î±× ±â·Ï ½Ã, ¾ÆÀ̵ð ³Ñ¹ö¸¦ »ç¿ëÇϸé ÇØ´ç ·Î±×·Î ±â·ÏÇÒ ¼ö ÀÖÀ½447 * 448 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå449 * 450 * \param mapid ºÎ¿©ÇÒ ¾ÆÀ̵ð ³Ñ¹ö451 * \param ctx ·Î±× ÄÁÅؽºÆ®452 * 453 * \remarks ¹Ýµå½Ã ¸ÕÀú ÃʱâÈ ÇؾßÇϸç, ÃʱâÈ ½Ã¿¡ ÁÖ¾îÁø ¹øÈ£º¸´Ù ÀÛÀº ¾ÆÀ̵ð ³Ñ¹ö¸¦ »ç¿ë445 * 로그 컨텍스트에 아이디 넘버 할당<br /> 446 * 로그 기록 시, 아이디 넘버를 사용하면 해당 로그로 기록할 수 있음 447 * 448 * \return 성공 시, CF_OK; 실패 시, 오류 코드 449 * 450 * \param mapid 부여할 아이디 넘버 451 * \param ctx 로그 컨텍스트 452 * 453 * \remarks 반드시 먼저 초기화 해야하며, 초기화 시에 주어진 번호보다 작은 아이디 넘버를 사용 454 454 * 455 455 * \see CF_LOG_OPEN, CF_Log_CreateCtx … … 469 469 470 470 /** 471 * ¾ÆÀ̵ð ³Ñ¹ö¿¡ ÇØ´çÇÏ´Â ·Î±×¸¦ ´Ý°í ÇØ´çÇÏ´Â ÄÁÅؽºÆ®¸¦ ÇØÁ¦472 * 473 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå474 * 475 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö476 * 477 * \remarks ¾ÆÀ̵ð ³Ñ¹ö¿¡ ÇØ´çÇÏ´Â ÄÁÅؽºÆ®°¡ ÇØÁ¦µÇ¹Ç·Î ÁÖÀÇ471 * 아이디 넘버에 해당하는 로그를 닫고 해당하는 컨텍스트를 해제 472 * 473 * \return 성공 시, CF_OK; 실패 시, 오류 코드 474 * 475 * \param mapid 로그의 아이디 넘버 476 * 477 * \remarks 아이디 넘버에 해당하는 컨텍스트가 해제되므로 주의 478 478 * 479 479 * \see CF_LOG_CLOSE, CF_Log_DestroyCtx … … 495 495 496 496 /** 497 * ¾ÆÀ̵ð ³Ñ¹ö¿¡ ÇØ´çÇÏ´Â ·Î±× ÄÁÅؽºÆ®¸¦ ¾ò±â498 * 499 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå500 * 501 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö502 * \param ctx ·Î±× ÄÁÅؽºÆ® ¹ÞÀ» ÁÖ¼Ò497 * 아이디 넘버에 해당하는 로그 컨텍스트를 얻기 498 * 499 * \return 성공 시, CF_OK; 실패 시, 오류 코드 500 * 501 * \param mapid 로그의 아이디 넘버 502 * \param ctx 로그 컨텍스트 받을 주소 503 503 */ 504 504 static int … … 516 516 517 517 /** 518 * ·Î±×¸¦ »ç¿ëÇϱâ À§ÇØ ÃʱâÈ519 * 520 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå521 * 522 * \param poolSize ·Î±× Ç® Å©±â·Î, ·Î±× ¾ÆÀ̵ð ³Ñ¹öÀÇ ÃÖ´ë °ª518 * 로그를 사용하기 위해 초기화 519 * 520 * \return 성공 시, CF_OK; 실패 시, 오류 코드 521 * 522 * \param poolSize 로그 풀 크기로, 로그 아이디 넘버의 최대 값 523 523 */ 524 524 int … … 540 540 541 541 /** 542 * ·Î±×°¡ ¸ðµÎ »ç¿ëµÈ ÈÄ ÀÚ¿ø ÇØÁ¦543 * 544 * \return CF_OK ¹Ýȯ542 * 로그가 모두 사용된 후 자원 해제 543 * 544 * \return CF_OK 반환 545 545 */ 546 546 int … … 563 563 564 564 /** 565 * ·Î±× ¿±â566 * 567 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå568 * 569 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö570 * \param path ·Î±× ÆÄÀÏ °æ·Î571 * \param memsize ·Î±× ¹öÆÛ Å©±â565 * 로그 열기 566 * 567 * \return 성공 시, CF_OK; 실패 시, 오류 코드 568 * 569 * \param mapid 로그의 아이디 넘버 570 * \param path 로그 파일 경로 571 * \param memsize 로그 버퍼 크기 572 572 * 573 573 * \see CF_LOG_DEFAULT_BUFFER, CF_LOG_NO_BUFFER … … 593 593 594 594 /** 595 * ·Î±× ´Ý±â596 * 597 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå598 * 599 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö595 * 로그 닫기 596 * 597 * \return 성공 시, CF_OK; 실패 시, 오류 코드 598 * 599 * \param mapid 로그의 아이디 넘버 600 600 */ 601 601 int … … 606 606 607 607 /** 608 * ·Î±× ¹öÆÛÀÇ µ¥ÀÌÅ͸¦ Áï½Ã ·Î±× ÆÄÀÏ¿¡ ¾²±â609 * 610 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå611 * 612 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö608 * 로그 버퍼의 데이터를 즉시 로그 파일에 쓰기 609 * 610 * \return 성공 시, CF_OK; 실패 시, 오류 코드 611 * 612 * \param mapid 로그의 아이디 넘버 613 613 */ 614 614 int … … 628 628 629 629 /** 630 * ·Î±× ÄÁÅؽºÆ®¿¡ ¸ÖƼ¾²·¹µå ¸ðµå ¼³Á¤631 * 632 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå633 * 634 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö635 * \param flag ¼³Á¤/ÇØÁ¦ bool Ç÷¡±×630 * 로그 컨텍스트에 멀티쓰레드 모드 설정 631 * 632 * \return 성공 시, CF_OK; 실패 시, 오류 코드 633 * 634 * \param mapid 로그의 아이디 넘버 635 * \param flag 설정/해제 bool 플래그 636 636 * 637 637 * \see CF_BOOL … … 655 655 656 656 /** 657 * ·Î±× ¾²±â658 * 659 * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå660 * 661 * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö662 * \param prefix ·Î±×ÀÇ ÇÁ¸®ÇȽº ¹®ÀÚ¿663 * \param fmt Æ÷¸Ë ½ºÆ®¸µ664 * \param ... °¡º¯ ÀÎÀÚ657 * 로그 쓰기 658 * 659 * \return 성공 시, CF_OK; 실패 시, 오류 코드 660 * 661 * \param mapid 로그의 아이디 넘버 662 * \param prefix 로그의 프리픽스 문자열 663 * \param fmt 포맷 스트링 664 * \param ... 가변 인자 665 665 */ 666 666 int
Note:
See TracChangeset
for help on using the changeset viewer.