logger for windows: merge heads

JSON-103
Claudio Luck 5 years ago
commit 61046e68fa

@ -12,7 +12,7 @@
#include <vector>
#ifdef _WIN32
# include <alloca>
# include <malloc.h>
#endif
#ifdef LOGGER_ENABLE_SYSLOG
@ -39,7 +39,7 @@ namespace LoggerS // namespace containing all data for the Logger singleton. HA
// config variables
bool omit_timestamp = false;
unsigned max_message_length = LOGGER_MAX_LOG_MESSAGE_LENGTH;
unsigned max_line_length = LOGGER_MAX_LINE_LENGTH;
unsigned max_line_length = std::min(64u*1024u, LOGGER_MAX_LINE_LENGTH);
void openfile();
void opensyslog();
@ -319,7 +319,12 @@ void Logger::log(Severity s, const char* format, ...)
{
va_list va;
va_start(va, format);
char *buf = (char*) alloca (sizeof(char) * ( LoggerS::max_line_length + 1 ));
#ifdef _WIN32
char* buf = _alloca(LoggerS::max_line_length + 1);
#else
char buf[ LoggerS::max_line_length + 1];
#endif
std::vsnprintf(buf, LoggerS::max_line_length, format, va);
va_end(va);
@ -332,7 +337,11 @@ void LogP(Logger::Severity s, Logger::Severity my_loglevel, const std::string& p
{
if(s<=my_loglevel && s<=LoggerS::loglevel)
{
char *buf = (char*) alloca (sizeof(char) * ( LoggerS::max_line_length + 1 ));
#ifdef _WIN32
char* buf = _alloca(LoggerS::max_line_length + 1);
#else
char buf[ LoggerS::max_line_length + 1];
#endif
std::vsnprintf(buf, LoggerS::max_line_length, format, va);
LoggerS::log(s, prefix + buf );
}

@ -2,12 +2,12 @@
#define LOGGER_CONFIG_HH
// maximum length of a log message. longer log messages will be clipped
#define LOGGER_MAX_LOG_MESSAGE_LENGTH (8192)
#define LOGGER_MAX_LOG_MESSAGE_LENGTH (8192u)
// maximum length of a log line. longer lines will be wrapped/folded
#define LOGGER_MAX_LINE_LENGTH (1000)
#define LOGGER_MAX_LINE_LENGTH (1000u)
// enable logging to syslog
// enable logging to syslog except on MS Windows
#ifndef _WIN32
#define LOGGER_ENABLE_SYSLOG (1)
#endif

Loading…
Cancel
Save