[Sheepdog] [PATCH 5/5] logger: fix the vprintf() bug

AndyChen andychenzy at gmail.com
Thu Oct 13 09:25:07 CEST 2011


2011/10/13 Liu Yuan <namei.unix at gmail.com>:
> On 10/13/2011 12:12 PM, AndyChen wrote:
>>
>>>> -       vprintf(SDOG_INFO "we create a new vdi, %d %s (%zd) %" PRIu64 ",
>>>> vid: %"
>>>> +       vprintf(SDOG_INFO, "we create a new vdi, %d %s (%zd) %" PRIu64
>>>> ", vid: %"
>>>>                PRIx32 ", base %" PRIx32 ", cur %" PRIx32 " \n",
>>>>                is_snapshot, name, strlen(name), size, *new_vid,
>>>> base_vid, cur_vid);
>>>>
>>>>        if (!copies) {
>>>> -               vprintf(SDOG_WARNING "qemu doesn't specify the copies...
>>>> %d\n",
>>>> +               vprintf(SDOG_WARNING, "qemu doesn't specify the
>>>> copies... %d\n",
>>>>                        sys->nr_sobjs);
>>>>                copies = sys->nr_sobjs;
>>>>        }
>>>
>>> Why we need extra ',' in vprintf?
>>
>> it is not extra, now  vprintf() use log_write() which defined in
>> sheepdog/include/logger.h,
>> log_write() has log level parameter 'prio', but vrpintf() does not
>> parse the log level, use LOG_INFO default.
>> you mean use vprintf() such as use printk()?
>>
>
> I didn't get you meant. but the definition vprintf(fmt, args...) shows that
> 'fmt' is the constant char *,  so I don't think we need to place ',' between
> two format strings. I look at the printk implementation in linux kernel,
> there is no such ',' between format strings either.
here the vprintf defined by the sheep logger, not the standard library
function: vprintf(fmt, args...)
>
> Thanks,
> Yuan
>
>



More information about the sheepdog mailing list