diff --git a/winpr/include/winpr/wlog.h b/winpr/include/winpr/wlog.h index bd55ffbf2..aea7a0d78 100644 --- a/winpr/include/winpr/wlog.h +++ b/winpr/include/winpr/wlog.h @@ -146,9 +146,10 @@ struct _wLogAppender WLOG_APPENDER_COMMON(); }; -#define WLOG_CONSOLE_STDOUT 1 -#define WLOG_CONSOLE_STDERR 2 -#define WLOG_CONSOLE_DEBUG 3 +#define WLOG_CONSOLE_DEFAULT 0 +#define WLOG_CONSOLE_STDOUT 1 +#define WLOG_CONSOLE_STDERR 2 +#define WLOG_CONSOLE_DEBUG 4 struct _wLogConsoleAppender { diff --git a/winpr/libwinpr/utils/wlog/ConsoleAppender.c b/winpr/libwinpr/utils/wlog/ConsoleAppender.c index 5de8e15dd..77beb3dfe 100644 --- a/winpr/libwinpr/utils/wlog/ConsoleAppender.c +++ b/winpr/libwinpr/utils/wlog/ConsoleAppender.c @@ -47,14 +47,14 @@ void WLog_ConsoleAppender_SetOutputStream(wLog* log, wLogConsoleAppender* append return; if (outputStream < 0) - outputStream = WLOG_CONSOLE_STDOUT; + outputStream = WLOG_CONSOLE_DEFAULT; if (outputStream == WLOG_CONSOLE_STDOUT) appender->outputStream = WLOG_CONSOLE_STDOUT; else if (outputStream == WLOG_CONSOLE_STDERR) appender->outputStream = WLOG_CONSOLE_STDERR; else - appender->outputStream = WLOG_CONSOLE_STDOUT; + appender->outputStream = WLOG_CONSOLE_DEFAULT; } int WLog_ConsoleAppender_Open(wLog* log, wLogConsoleAppender* appender) @@ -123,9 +123,34 @@ int WLog_ConsoleAppender_WriteMessage(wLog* log, wLogConsoleAppender* appender, __android_log_print(level, log->Name, "%s%s", message->PrefixString, message->TextString); #else - fp = (appender->outputStream == WLOG_CONSOLE_STDERR) ? stderr : stdout; + switch(appender->outputStream) + { + case WLOG_CONSOLE_STDOUT: + fp = stdout; + break; + case WLOG_CONSOLE_STDERR: + fp = stderr; + break; + default: + switch(message->Level) + { + case WLOG_TRACE: + case WLOG_DEBUG: + case WLOG_INFO: + fp = stdout; + break; + case WLOG_OFF: + fp = NULL; + break; + default: + fp = stderr; + break; + } + break; + } - fprintf(fp, "%s%s\n", message->PrefixString, message->TextString); + if (fp) + fprintf(fp, "%s%s\n", message->PrefixString, message->TextString); #endif return 1; } @@ -211,11 +236,11 @@ wLogConsoleAppender* WLog_ConsoleAppender_New(wLog* log) ConsoleAppender->WritePacketMessage = (WLOG_APPENDER_WRITE_PACKET_MESSAGE_FN) WLog_ConsoleAppender_WritePacketMessage; - ConsoleAppender->outputStream = WLOG_CONSOLE_STDOUT; + ConsoleAppender->outputStream = WLOG_CONSOLE_DEFAULT; #ifdef _WIN32 - if (IsDebuggerPresent()) - ConsoleAppender->outputStream = WLOG_CONSOLE_DEBUG; + if (IsDebuggerPresent()) + ConsoleAppender->outputStream = WLOG_CONSOLE_DEBUG; #endif return ConsoleAppender;