Print message to stderr at once, to avoid mixups.
This commit is contained in:
@@ -37,10 +37,21 @@ enum MESSAGE_LEVEL {
|
|||||||
/* Prints error message and exits. */
|
/* Prints error message and exits. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_start (const glibtop *server, int message_level)
|
print_message (const glibtop *server, int message_level, const char *format, int error, va_list args)
|
||||||
{
|
{
|
||||||
const char *level;
|
const char *level;
|
||||||
char pids[32];
|
GString* message;
|
||||||
|
|
||||||
|
message = g_string_new(NULL);
|
||||||
|
|
||||||
|
g_string_printf(message, "%s", (server && server->name ? server->name : DEFAULT_NAME));
|
||||||
|
|
||||||
|
if (server->pid) {
|
||||||
|
g_string_append_printf(message, "(c=%u/s=%u)", getpid(), server->pid);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
g_string_append_printf(message, "(c=%u)", getpid());
|
||||||
|
}
|
||||||
|
|
||||||
switch (message_level) {
|
switch (message_level) {
|
||||||
case MESSAGE_DEBUG:
|
case MESSAGE_DEBUG:
|
||||||
@@ -56,26 +67,25 @@ print_start (const glibtop *server, int message_level)
|
|||||||
level = "UNKNOWN";
|
level = "UNKNOWN";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server->pid) {
|
g_string_append_printf(message, ": [%s] ", level);
|
||||||
snprintf(pids, sizeof pids, "c=%u/s=%u", getpid(), server->pid);
|
|
||||||
}
|
g_string_append_vprintf(message, format, args);
|
||||||
else {
|
|
||||||
snprintf(pids, sizeof pids, "c=%u", getpid());
|
if (error) {
|
||||||
|
g_string_append_printf(message, ": %s", g_strerror(error));
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf (stderr, "%s(%s): [%s] ", server && server->name
|
g_string_append_c(message, '\n');
|
||||||
? server->name
|
|
||||||
: DEFAULT_NAME,
|
fputs(message->str, stderr);
|
||||||
pids,
|
|
||||||
level);
|
g_string_free(message, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
glibtop_error_vr (glibtop *server, const char *format, va_list args)
|
glibtop_error_vr (glibtop *server, const char *format, va_list args)
|
||||||
{
|
{
|
||||||
print_start (server, MESSAGE_ERROR);
|
print_message (server, MESSAGE_ERROR, format, 0, args);
|
||||||
vfprintf (stderr, format, args);
|
|
||||||
fputc('\n', stderr);
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_ENABLE_DEBUG
|
#ifdef LIBGTOP_ENABLE_DEBUG
|
||||||
abort ();
|
abort ();
|
||||||
@@ -87,9 +97,7 @@ glibtop_error_vr (glibtop *server, const char *format, va_list args)
|
|||||||
void
|
void
|
||||||
glibtop_error_io_vr (glibtop *server, const char *format, int error, va_list args)
|
glibtop_error_io_vr (glibtop *server, const char *format, int error, va_list args)
|
||||||
{
|
{
|
||||||
print_start (server, MESSAGE_ERROR);
|
print_message (server, MESSAGE_ERROR, format, error, args);
|
||||||
vfprintf (stderr, format, args);
|
|
||||||
fprintf (stderr, ": %s\n", g_strerror (error));
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_ENABLE_DEBUG
|
#ifdef LIBGTOP_ENABLE_DEBUG
|
||||||
abort ();
|
abort ();
|
||||||
@@ -101,9 +109,7 @@ glibtop_error_io_vr (glibtop *server, const char *format, int error, va_list arg
|
|||||||
void
|
void
|
||||||
glibtop_warn_vr (glibtop *server, const char *format, va_list args)
|
glibtop_warn_vr (glibtop *server, const char *format, va_list args)
|
||||||
{
|
{
|
||||||
print_start (server, MESSAGE_WARNING);
|
print_message (server, MESSAGE_WARNING, format, 0, args);
|
||||||
vfprintf (stderr, format, args);
|
|
||||||
fputc('\n', stderr);
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_FATAL_WARNINGS
|
#ifdef LIBGTOP_FATAL_WARNINGS
|
||||||
abort ();
|
abort ();
|
||||||
@@ -113,9 +119,7 @@ glibtop_warn_vr (glibtop *server, const char *format, va_list args)
|
|||||||
void
|
void
|
||||||
glibtop_warn_io_vr (glibtop *server, const char *format, int error, va_list args)
|
glibtop_warn_io_vr (glibtop *server, const char *format, int error, va_list args)
|
||||||
{
|
{
|
||||||
print_start (server, MESSAGE_WARNING);
|
print_message (server, MESSAGE_WARNING, format, error, args);
|
||||||
vfprintf (stderr, format, args);
|
|
||||||
fprintf (stderr, ": %s\n", g_strerror (error));
|
|
||||||
|
|
||||||
#ifdef LIBGTOP_FATAL_WARNINGS
|
#ifdef LIBGTOP_FATAL_WARNINGS
|
||||||
abort ();
|
abort ();
|
||||||
@@ -168,9 +172,7 @@ glibtop_warn_io_r (glibtop *server, const char *format, ...)
|
|||||||
void
|
void
|
||||||
glibtop_debug_vr (glibtop *server, const char *format, va_list args)
|
glibtop_debug_vr (glibtop *server, const char *format, va_list args)
|
||||||
{
|
{
|
||||||
print_start (server, MESSAGE_DEBUG);
|
print_message (server, MESSAGE_DEBUG, format, 0, args);
|
||||||
vfprintf (stderr, format, args);
|
|
||||||
fputc('\n', stderr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user