54 |
}; |
}; |
55 |
|
|
56 |
void |
void |
57 |
vlog(int level, const char *file, int line, |
vlog(int level, const char *file, size_t line, |
58 |
const char *func_name, int en, |
const char *func_name, int en, |
59 |
const char *fmt, va_list ap) |
const char *fmt, va_list ap) |
60 |
{ |
{ |
61 |
fprintf(stderr, "%s: %s: ", progname, priname[level & L_PRIMASK]); |
fprintf(stderr, "%s: %s: ", progname, priname[level & L_PRIMASK]); |
62 |
if (file) |
if (file) { |
63 |
fprintf(stderr, "%s:%d:%s: ", file, line, SP(func_name)); |
fprintf(stderr, "%s:%lu:", file, (unsigned long) line); |
64 |
|
if (func_name) |
65 |
|
fprintf(stderr, "%s:", func_name); |
66 |
|
fprintf(stderr, " "); |
67 |
|
} |
68 |
vfprintf(stderr, fmt, ap); |
vfprintf(stderr, fmt, ap); |
69 |
if (en) |
if (en) |
70 |
fprintf(stderr, ": %s", strerror(en)); |
fprintf(stderr, ": %s", strerror(en)); |