]> rtime.felk.cvut.cz Git - ulut.git/blobdiff - ulut/ul_logbase.c
Provided generic code to maintain and register log domains.
[ulut.git] / ulut / ul_logbase.c
index 9fe87bdd4a189bd3e13312a0bb3b5d04af50ca6d..69b1d34a817230ba3b80a4d871b412cb4f32a015 100644 (file)
@@ -115,30 +115,14 @@ void
 ul_vlog1(ul_log_domain_t *domain, int level,
        const char *format, va_list ap)
 {
- #ifndef __RTL__
-  char *s;
-  char *log_fname;
- #endif /*__RTL__*/
   if(ul_log_cutoff_level) {
       if((level & UL_LOGL_MASK) > ul_log_cutoff_level) return;
   }
   if(ul_log_output==NULL) {
-    ul_log_output=ul_log_fnc_default;
-   #ifndef __RTL__
-    if((log_fname=getenv("UL_LOG_FILENAME"))!=NULL){
-      ul_log_default_file=fopen(log_fname,"a");
-    }
-    if(ul_log_default_file==NULL)
-      ul_log_default_file=stderr;
-    if(!ul_debug_flg&&((s=getenv("UL_DEBUG_FLG"))!=NULL)){
-      ul_debug_flg=atoi(s);
-    }
-    if((s = getenv("UL_LOG_CUTTOFF")) != NULL) {
-        ul_log_cutoff_level = atoi(s);
-    }
-   #endif /*__RTL__*/
+    ul_log_check_default_output();
   }
-  (*ul_log_output)(domain,level,format,ap);
+  if(ul_log_output)
+    (*ul_log_output)(domain,level,format,ap);
 }
 
 /**
@@ -189,3 +173,31 @@ ul_log_fnc_default(ul_log_domain_t *domain, int level,
 
 #endif /*__RTL__*/
 
+int
+ul_log_check_default_output(void)
+{
+ #ifndef __RTL__
+  char *s;
+  char *log_fname;
+ #endif /*__RTL__*/
+
+  if(ul_log_output!=NULL)
+    return 0;
+
+  ul_log_output=ul_log_fnc_default;
+ #ifndef __RTL__
+  if((log_fname=getenv("UL_LOG_FILENAME"))!=NULL){
+    ul_log_default_file=fopen(log_fname,"a");
+  }
+  if(ul_log_default_file==NULL)
+    ul_log_default_file=stderr;
+  if(!ul_debug_flg&&((s=getenv("UL_DEBUG_FLG"))!=NULL)){
+    ul_debug_flg=atoi(s);
+  }
+  if((s = getenv("UL_LOG_CUTTOFF")) != NULL) {
+      ul_log_cutoff_level = atoi(s);
+  }
+ #endif /*__RTL__*/
+  return 0;
+}
+