Changeset 127 in libcf for trunk/src/cf_log.c


Ignore:
Timestamp:
06/18/13 16:48:52 (11 years ago)
Author:
cheese
Message:

#1 fix crashed text

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/cf_log.c

    r125 r127  
    44 * \author  vfire
    55 *
    6  * \brief ·Î±× ±¸Çö
     6 * \brief 로그 구현
    77 */
    88#if defined(_WIN32) || defined(_WIN64)
     
    5656#define LOG_DATETIME_LENGTH             sizeof ("0000-00-00 00:00:00.000") - 1
    5757
    58 /** ·Î±× ÄÁÅؽºÆ® (Opaque) */
     58/** 로그 컨텍스트 (Opaque) */
    5959typedef void *  CF_Log_Ctx;
    6060
     
    7272} CF_LOG_DATETIME;
    7373
    74 /** ·Î±× ÄÁÅؽºÆ® (CF_Log_CtxÀÇ ±¸Çö) */
     74/** 로그 컨텍스트 (CF_Log_Ctx의 구현) */
    7575typedef struct __cf_log_ctx__
    7676{
     
    173173
    174174    snprintf (buffer, LOG_DATETIME_LENGTH,
    175               "%02d-%02d-%02d %02d:%02d:%02d.%03d",
     175              "%04d-%02d-%02d %02d:%02d:%02d.%03d",
    176176              dt.year, dt.month, dt.day,
    177177              dt.hour, dt.min, dt.sec, dt.usec);
     
    192192
    193193/**
    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    로그 데이터 길이
    201201 *
    202202 * \author vfire
     
    209209    int result = CF_OK;
    210210
    211     if (ctx->size > 0) /* ¹öÆÛ´ÜÀ§ ¹öÆÛ¸µ.... */
     211    if (ctx->size > 0) /* 버퍼단위 버퍼링.... */
    212212    {
    213213        size_t writeSize;
     
    228228        }
    229229    }
    230     else /* flushµÇ¾î¾ß ÇÔ. */
     230    else /* flush되어야 함. */
    231231    {
    232232        ctx->buffer = (char *)buffer;
     
    240240
    241241/**
    242  * ·Î±× ÄÁÅؽºÆ®¿¡ ¸ÖƼ¾²·¹µå ¸ðµå ¼³Á¤
    243  *
    244  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    245  *
    246  * \param ctx ·Î±× ÄÁÅؽºÆ®
     242 * 로그 컨텍스트에 멀티쓰레드 모드 설정
     243 *
     244 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     245 *
     246 * \param ctx 로그 컨텍스트
    247247 *
    248248 * \see CF_Log_UnsetMultiThread
     
    262262
    263263/**
    264  * ·Î±× ÄÁÅؽºÆ®¿¡ ¸ÖƼ¾²·¹µå ¸ðµå ¼³Á¤ ÇØÁ¦
    265  *
    266  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    267  *
    268  * \param ctx ·Î±× ÄÁÅؽºÆ®
     264 * 로그 컨텍스트에 멀티쓰레드 모드 설정 해제
     265 *
     266 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     267 *
     268 * \param ctx 로그 컨텍스트
    269269 *
    270270 * \see CF_Log_SetMultiThread
     
    286286
    287287/**
    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 ...       가변 인자
    296296 */
    297297static int
     
    327327
    328328/**
    329  * ·Î±× ¹öÆÛÀÇ µ¥ÀÌÅ͸¦ Áï½Ã ·Î±× ÆÄÀÏ¿¡ ¾²±â
    330  *
    331  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    332  *
    333  * \param ctx ·Î±× ÄÁÅؽºÆ®
     329 * 로그 버퍼의 데이터를 즉시 로그 파일에 쓰기
     330 *
     331 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     332 *
     333 * \param ctx 로그 컨텍스트
    334334 */
    335335static int
     
    348348
    349349/**
    350  * ·Î±× ÄÁÅؽºÆ® ÇØÁ¦
    351  *
    352  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    353  *
    354  * \param ctx ·Î±× ÄÁÅؽºÆ®
     350 * 로그 컨텍스트 해제
     351 *
     352 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     353 *
     354 * \param ctx 로그 컨텍스트
    355355 */
    356356static int
     
    378378
    379379/**
    380  * ·Î±× ÄÁÅؽºÆ® »ý¼º
    381  *
    382  * \return ¼º°ø ½Ã, ·Î±× ÄÁÅؽºÆ®; ½ÇÆÐ ½Ã, NULL
    383  *
    384  * \param ctx       ·Î±× ÄÁÅؽºÆ® ÁÖ¼Ò
    385  * \param path      ·Î±× ÆÄÀÏ °æ·Î
    386  * \param memsize   ·Î±× ¹öÆÛ Å©±â
     380 * 로그 컨텍스트 생성
     381 *
     382 * \return 성공 시, 로그 컨텍스트; 실패 시, NULL
     383 *
     384 * \param ctx       로그 컨텍스트 주소
     385 * \param path      로그 파일 경로
     386 * \param memsize   로그 버퍼 크기
    387387 *
    388388 * \see CF_LOG_DEFAULT_BUFFER, CF_LOG_NO_BUFFER
     
    443443
    444444/**
    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 반드시 먼저 초기화 해야하며, 초기화 시에 주어진 번호보다 작은 아이디 넘버를 사용
    454454 *
    455455 * \see CF_LOG_OPEN, CF_Log_CreateCtx
     
    469469
    470470/**
    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 아이디 넘버에 해당하는 컨텍스트가 해제되므로 주의
    478478 *
    479479 * \see CF_LOG_CLOSE, CF_Log_DestroyCtx
     
    495495
    496496/**
    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   로그 컨텍스트 받을 주소
    503503 */
    504504static int
     
    516516
    517517/**
    518  * ·Î±×¸¦ »ç¿ëÇϱâ À§ÇØ ÃʱâÈ­
    519  *
    520  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    521  *
    522  * \param poolSize  ·Î±× Ç® Å©±â·Î, ·Î±× ¾ÆÀ̵ð ³Ñ¹öÀÇ ÃÖ´ë °ª
     518 * 로그를 사용하기 위해 초기화
     519 *
     520 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     521 *
     522 * \param poolSize  로그 풀 크기로, 로그 아이디 넘버의 최대 값
    523523 */
    524524int
     
    540540
    541541/**
    542  * ·Î±×°¡ ¸ðµÎ »ç¿ëµÈ ÈÄ ÀÚ¿ø ÇØÁ¦
    543  *
    544  * \return CF_OK ¹Ýȯ
     542 * 로그가 모두 사용된 후 자원 해제
     543 *
     544 * \return CF_OK 반환
    545545 */
    546546int
     
    563563
    564564/**
    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   로그 버퍼 크기
    572572 *
    573573 * \see CF_LOG_DEFAULT_BUFFER, CF_LOG_NO_BUFFER
     
    593593
    594594/**
    595  * ·Î±× ´Ý±â
    596  *
    597  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    598  *
    599  * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö
     595 * 로그 닫기
     596 *
     597 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     598 *
     599 * \param mapid 로그의 아이디 넘버
    600600 */
    601601int
     
    606606
    607607/**
    608  * ·Î±× ¹öÆÛÀÇ µ¥ÀÌÅ͸¦ Áï½Ã ·Î±× ÆÄÀÏ¿¡ ¾²±â
    609  *
    610  * \return ¼º°ø ½Ã, CF_OK; ½ÇÆÐ ½Ã, ¿À·ù ÄÚµå
    611  *
    612  * \param mapid ·Î±×ÀÇ ¾ÆÀ̵ð ³Ñ¹ö
     608 * 로그 버퍼의 데이터를 즉시 로그 파일에 쓰기
     609 *
     610 * \return 성공 시, CF_OK; 실패 시, 오류 코드
     611 *
     612 * \param mapid 로그의 아이디 넘버
    613613 */
    614614int
     
    628628
    629629/**
    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 플래그
    636636 *
    637637 * \see CF_BOOL
     
    655655
    656656/**
    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 ...       가변 인자
    665665 */
    666666int
Note: See TracChangeset for help on using the changeset viewer.