*******************************************************************/
+#include <ctype.h>
#include <string.h>
+#include <stdlib.h>
#include <ul_logbase.h>
#include <ul_logreg.h>
#include <ul_gsacust.h>
if(!name)
all_fl=1;
else
- all_fl=!strcmp(name,"all");
+ all_fl=!strcmp(name,"all") || !strcmp(name,"ALL");
if(!all_fl){
domain=ul_log_domains_find(&ul_log_domains,&name);
return domain->level;
}
+#ifndef UL_MAX_DOMAIN_NAME
+#define UL_MAX_DOMAIN_NAME 20
+#endif /*UL_MAX_DOMAIN_NAME*/
+
+int ul_log_domain_arg2levels(const char *arg)
+{
+ const char *p=arg;
+ const char *r;
+ int l;
+ char name[UL_MAX_DOMAIN_NAME+1];
+
+ if(!arg)
+ return -1;
+
+ while(*p){
+ if(isdigit(*p)){
+ strcpy(name,"all");
+ }else{
+ r=p;
+ while(isalnum(*p)) p++;
+ l=p-r;
+ if(l>UL_MAX_DOMAIN_NAME)
+ l=UL_MAX_DOMAIN_NAME;
+ memcpy(name,r,l);
+ name[l]=0;
+ if(*p&&(*p!='.')&&(*p!='='))
+ return p-arg;
+ p++;
+ }
+ l=strtol(p,(char**)&r,0);
+ if(!r||(p==r)||(*p&&(*p!=':')&&(*p!=',')))
+ return p-arg;
+ p=r;
+ if(ul_log_domain_setlevel(name, l)<0)
+ return p-arg;
+ if(*p)
+ p++;
+ }
+
+ return 0;
+}
+
int ul_logreg_domain(ul_log_domain_t *domain)
{
ul_log_check_default_output();
int ul_logreg_domain(ul_log_domain_t *domain);
int ul_logreg_domains_static(ul_log_domain_t *const *domains, int count);
+int ul_log_domain_arg2levels(const char *arg);
#ifdef __cplusplus
} /* extern "C"*/