1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-07-30 23:41:55 +03:00

Additional device-handling debug messages.

Additional verbosity level -vvvv includes line numbers and backtraces.
Verbose messages now go to stderr not stdout.
Close any stray file descriptors before starting.
Refine partitionable checks for certain device types.
Allow devices/types to override built-ins.
This commit is contained in:
Alasdair Kergon
2004-12-10 16:01:35 +00:00
parent 21c42c7fea
commit 09a7dce6be
9 changed files with 127 additions and 37 deletions

View File

@ -226,7 +226,7 @@ int debug_level()
void print_log(int level, const char *file, int line, const char *format, ...)
{
va_list ap;
char buf[1024], buf2[4096];
char buf[1024], buf2[4096], locn[4096];
int bufused, n;
const char *message;
const char *trformat; /* Translated format string */
@ -254,36 +254,46 @@ void print_log(int level, const char *file, int line, const char *format, ...)
log_it:
if (!_log_suppress) {
if (_verbose_level > _LOG_DEBUG)
lvm_snprintf(locn, sizeof(locn), "#%s:%d ",
file, line);
else
locn[0] = '\0';
va_start(ap, format);
switch (level) {
case _LOG_DEBUG:
if (!strcmp("<backtrace>", format))
if (!strcmp("<backtrace>", format) &&
_verbose_level <= _LOG_DEBUG)
break;
if (_verbose_level >= _LOG_DEBUG) {
printf("%s%s", _cmd_name, _msg_prefix);
fprintf(stderr, "%s%s%s", locn, _cmd_name,
_msg_prefix);
if (_indent)
printf(" ");
vprintf(trformat, ap);
putchar('\n');
fprintf(stderr, " ");
vfprintf(stderr, trformat, ap);
fputc('\n', stderr);
}
break;
case _LOG_INFO:
if (_verbose_level >= _LOG_INFO) {
printf("%s%s", _cmd_name, _msg_prefix);
fprintf(stderr, "%s%s%s", locn, _cmd_name,
_msg_prefix);
if (_indent)
printf(" ");
vprintf(trformat, ap);
putchar('\n');
fprintf(stderr, " ");
vfprintf(stderr, trformat, ap);
fputc('\n', stderr);
}
break;
case _LOG_NOTICE:
if (_verbose_level >= _LOG_NOTICE) {
printf("%s%s", _cmd_name, _msg_prefix);
fprintf(stderr, "%s%s%s", locn, _cmd_name,
_msg_prefix);
if (_indent)
printf(" ");
vprintf(trformat, ap);
putchar('\n');
fprintf(stderr, " ");
vfprintf(stderr, trformat, ap);
fputc('\n', stderr);
}
break;
case _LOG_WARN:
@ -295,7 +305,8 @@ void print_log(int level, const char *file, int line, const char *format, ...)
break;
case _LOG_ERR:
if (_verbose_level >= _LOG_ERR) {
fprintf(stderr, "%s%s", _cmd_name, _msg_prefix);
fprintf(stderr, "%s%s%s", locn, _cmd_name,
_msg_prefix);
vfprintf(stderr, trformat, ap);
fputc('\n', stderr);
}
@ -303,7 +314,8 @@ void print_log(int level, const char *file, int line, const char *format, ...)
case _LOG_FATAL:
default:
if (_verbose_level >= _LOG_FATAL) {
fprintf(stderr, "%s%s", _cmd_name, _msg_prefix);
fprintf(stderr, "%s%s%s", locn, _cmd_name,
_msg_prefix);
vfprintf(stderr, trformat, ap);
fputc('\n', stderr);
}