It is now possible to selectively enable and set verbosity
for different logging domains from commandline.
The option "-g" argument syntax is same for all tools.
Number without domain specifier or with symbol "all"
select log level for all domains. Domain name followed
by "." or "=" character selects level for specified domain.
More specifications can be concatenated by symbol ":" or ",".
Usage example:
-g 1:domone.5:domtwo.6
Requires to select level 1 for all but two listed two specified
domains. Log levels for "domone" and "domtwo" domains are set
to 5 or 6 respectively.
int ul_log_cond(ul_log_domain_t *domain, int level)
{
- if(!domain || (level > UL_LOGL_MAX))
+ if(!domain || ((level&UL_LOGL_MASK) > UL_LOGL_MAX))
return 0;
- return level <= domain->level;
+ return (level&UL_LOGL_MASK) <= domain->level;
}
void ul_vlog(ul_log_domain_t *domain, int level,
static inline
int ul_log_cond(ul_log_domain_t *domain, int level)
{
- if(!domain || (level > UL_LOGL_MAX))
+ if(!domain || ((level&UL_LOGL_MASK) > UL_LOGL_MAX))
return 0;
- return level <= domain->level;
+ return (level&UL_LOGL_MASK) <= domain->level;
}
static inline
ul_log_domains_it_t it;
ul_log_domain_t *domain=NULL;
- if((setlevel<0) || (setlevel>UL_LOGL_MAX))
+ if(setlevel<0)
return -1;
+ if(setlevel>UL_LOGL_MAX)
+ setlevel=UL_LOGL_MAX;
+
if(!name)
all_fl=1;
else
return p-arg;
p++;
}
- l=strtol(p,(char**)&r,0);
- if(!r||(p==r)||(*p&&(*p!=':')&&(*p!=',')))
+ r=p;
+ l=strtol(r,(char**)&p,0);
+ if(!p||(p==r)||(*p&&(*p!=':')&&(*p!=',')))
return p-arg;
- p=r;
if(ul_log_domain_setlevel(name, l)<0)
return p-arg;
if(*p)