Merge pull request #3214 from hardening/fix_systemd_appender

Make systemd appender honor layout and logs off
This commit is contained in:
Bernhard Miklautz 2016-03-16 11:58:31 +01:00
commit 1b1563658e

View File

@ -79,6 +79,7 @@ static BOOL WLog_JournaldAppender_WriteMessage(wLog* log, wLogAppender* appender
{ {
char *formatStr; char *formatStr;
wLogJournaldAppender* journaldAppender; wLogJournaldAppender* journaldAppender;
char prefix[WLOG_MAX_PREFIX_SIZE];
if (!log || !appender || !message) if (!log || !appender || !message)
return FALSE; return FALSE;
@ -89,19 +90,19 @@ static BOOL WLog_JournaldAppender_WriteMessage(wLog* log, wLogAppender* appender
{ {
case WLOG_TRACE: case WLOG_TRACE:
case WLOG_DEBUG: case WLOG_DEBUG:
formatStr = "<7>%s\n"; formatStr = "<7>%s%s\n";
break; break;
case WLOG_INFO: case WLOG_INFO:
formatStr = "<6>%s\n"; formatStr = "<6>%s%s\n";
break; break;
case WLOG_WARN: case WLOG_WARN:
formatStr = "<4>%s\n"; formatStr = "<4>%s%s\n";
break; break;
case WLOG_ERROR: case WLOG_ERROR:
formatStr = "<3>%s\n"; formatStr = "<3>%s%s\n";
break; break;
case WLOG_FATAL: case WLOG_FATAL:
formatStr = "<2>%s\n"; formatStr = "<2>%s%s\n";
break; break;
case WLOG_OFF: case WLOG_OFF:
return TRUE; return TRUE;
@ -110,7 +111,11 @@ static BOOL WLog_JournaldAppender_WriteMessage(wLog* log, wLogAppender* appender
return FALSE; return FALSE;
} }
fprintf(journaldAppender->stream, formatStr, message->TextString); message->PrefixString = prefix;
WLog_Layout_GetMessagePrefix(log, appender->Layout, message);
if (message->Level != WLOG_OFF)
fprintf(journaldAppender->stream, formatStr, message->PrefixString, message->TextString);
return TRUE; return TRUE;
} }