Index: /trunk/include/cf_log.h
===================================================================
--- /trunk/include/cf_log.h	(revision 100)
+++ /trunk/include/cf_log.h	(revision 101)
@@ -31,5 +31,5 @@
  * 로그 레벨 사용 안함
  *
- * @see CF_Log_SetLevel
+ * @see CF_Log_Initialize
  */
 #define CF_LOG_NO_LEVEL					-1
@@ -40,5 +40,6 @@
 
 CF_EXPORT int
-CF_Log_Initialize		(const int logPool);
+CF_Log_Initialize		(const int poolSize,
+						 const int level);
 
 CF_EXPORT int
@@ -65,7 +66,4 @@
 						 const CF_BOOL	flag);
 
-CF_EXPORT int
-CF_Log_SetLevel			(const int level);
-
 #ifdef __cplusplus
 }
Index: /trunk/src/cf_log.c
===================================================================
--- /trunk/src/cf_log.c	(revision 100)
+++ /trunk/src/cf_log.c	(revision 101)
@@ -49,4 +49,13 @@
 	if (gLogArray.ctxPool[__mapid] == NULL)	\
 		return CF_ERROR_LOG_NOT_MAPPED_ID
+
+#define GET_LOG_LEVEL()						\
+	((gLogArray.level == CF_LOG_NO_LEVEL)	\
+	 ? gLogArray.ctxSize					\
+	 : gLogArray.level)
+
+#define CHECK_LOG_LEVEL(__mapid)	\
+	if (GET_LOG_LEVEL () < mapid)	\
+		return CF_OK
 
 #define LOCK_LOG_CTX(__ctx)				CF_Mutex_Lock (&__ctx->mutex)
@@ -519,19 +528,22 @@
  * @return 성공 시, CF_OK; 실패 시, 오류 코드
  *
- * @param logPool 아이디 넘버 최대 값
+ * @param poolSize	로그 풀 크기로, 로그 아이디 넘버의 최대 값
+ * @param level		로그 레벨
+ *
+ * @see CF_LOG_NO_LEVEL
  */
 int
-CF_Log_Initialize (const int logPool)
+CF_Log_Initialize (const int poolSize, const int level)
 {
 	memset (&gLogArray, 0x00, sizeof (CF_LOG_ARRAY));
 
-	if (logPool > 0)
+	if (poolSize > 0)
 	{
 		gLogArray.ctxPool =
-			(CF_Log_Ctx *) calloc ((size_t) logPool, sizeof (CF_Log_Ctx));
+			(CF_Log_Ctx *) calloc ((size_t) poolSize, sizeof (CF_Log_Ctx));
 		if (gLogArray.ctxPool == NULL)
 			return CF_ERROR_LOG_INITIALIZE;
-		gLogArray.ctxSize = logPool;
-		gLogArray.level = CF_LOG_NO_LEVEL;
+		gLogArray.ctxSize = poolSize;
+		gLogArray.level = level;
 	}
 
@@ -581,4 +593,6 @@
 	CF_Log_Ctx	ctx = NULL;
 
+	CHECK_LOG_LEVEL (mapid);
+
 	result = CF_Log_CreateCtx (path, memsize, &ctx);
 	if (result < 0)
@@ -602,4 +616,6 @@
 CF_Log_Close (const int mapid)
 {
+	CHECK_LOG_LEVEL (mapid);
+
 	return CF_Log_UnmapCtxID (mapid);
 }
@@ -652,34 +668,4 @@
 
 	return result;
-}
-
-/**
- * 현재 설정된 로그 레벨을 가져옴
- *
- * @return 로그 레벨이 설정된 경우, 로그 풀 크기; 그 외에, 설정된 로그 레벨
- */
-static int
-CF_Log_GetLevel (void)
-{
-	return (gLogArray.level == CF_LOG_NO_LEVEL) ? gLogArray.ctxSize
-												: gLogArray.level;
-}
-
-/**
- * 로그 레벨을 설정
- * 지정된 로그 레벨 이하의 아이디 넘버만 로그로 기록하도록 설정
- *
- * @return 성공 시, CF_OK; 실패 시, 오류 코드 
- *
- * @param level 설정할 로그 레벨
- *
- * @see CF_LOG_NO_LEVEL
- */
-int
-CF_Log_SetLevel (const int level)
-{
-	gLogArray.level = level;
-
-	return CF_OK;
 }
 
@@ -703,7 +689,5 @@
 	va_list		valist;
 
-	result = CF_Log_GetLevel ();
-	if (result < mapid)
-		return CF_OK;
+	CHECK_LOG_LEVEL (mapid);
 
 	result = CF_Log_GetMappedCtx (mapid, &ctx);
Index: /trunk/test/log.c
===================================================================
--- /trunk/test/log.c	(revision 100)
+++ /trunk/test/log.c	(revision 101)
@@ -13,5 +13,5 @@
 	char		logname[16] = {0x00,};
 
-	if (CF_Log_Initialize (10) < 0)
+	if (CF_Log_Initialize (10, 5) < 0)
 	{
 		fprintf (stderr, "failed to init. log\n");
@@ -25,7 +25,4 @@
 			fprintf (stderr, "failed to open log\n");
 	}
-
-	if (CF_Log_SetLevel (5) < 0)
-		fprintf (stderr, "failed to set log level\n");
 
 	for (i = 0 ; i < 10 ; i++)
Index: /trunk/test/test.c
===================================================================
--- /trunk/test/test.c	(revision 100)
+++ /trunk/test/test.c	(revision 101)
@@ -106,5 +106,5 @@
 
 	/* initialize */
-	if (CF_Log_Initialize (10) < 0)
+	if (CF_Log_Initialize (10, 5) < 0)
 	{
 		fprintf (stderr, "failed to init. log\n");
@@ -118,7 +118,4 @@
 			fprintf (stderr, "failed to open log\n");
 	}
-
-	if (CF_Log_SetLevel (5) < 0)
-		fprintf (stderr, "failed to set log level\n");
 
 	for (i = 0 ; i < 10 ; i++)
