log_msg refactoring and raw message support

This commit is contained in:
gabi
2014-05-09 15:27:06 +03:00
parent bafea6a6b2
commit 497d511746
9 changed files with 106 additions and 102 deletions

View File

@@ -26,12 +26,7 @@ public:
{
if(enabled)
{
_log_msg.msg_time = log_clock::now();
callback_logger->_formatter->format_header(callback_logger->_logger_name,
_log_msg.msg_level,
_log_msg.msg_time,
_oss);
_log_msg.msg_header_size = _oss.str().size();
_log_msg.time = log_clock::now();
}
}
@@ -46,10 +41,10 @@ public:
_log_msg(std::move(other._log_msg)),
_oss(std::move(other._oss.str())),
_enabled(other._enabled),
_empty(other._empty)
{
other.disable();
}
_empty(other._empty)
{
other.disable();
}
@@ -58,8 +53,7 @@ public:
//only if enabled and not empty
if (_enabled && !_empty)
{
_oss << os::eol();
_log_msg.str = _oss.str();
_log_msg.raw = _oss.str();
_callback_logger->_log_it(_log_msg);
}
}
@@ -81,10 +75,10 @@ public:
return *this;
}
void disable()
{
_enabled = false;
}
void disable()
{
_enabled = false;
}
@@ -92,7 +86,7 @@ private:
logger* _callback_logger;
log_msg _log_msg;
//details::stack_oss _oss;
std::ostringstream _oss;
std::ostringstream _oss;
bool _enabled;
bool _empty;
};

View File

@@ -8,51 +8,50 @@ struct log_msg
{
log_msg() = default;
log_msg(level::level_enum l):
msg_level(l),
msg_time(),
msg_header_size(0),
str() {}
level(l),
time(),
raw(),
formatted() {}
log_msg(const log_msg& other):
msg_level(other.msg_level),
msg_time(other.msg_time),
msg_header_size(other.msg_header_size),
str(other.str) {}
log_msg(const log_msg& other):
level(other.level),
time(other.time),
raw(other.raw),
formatted(other.formatted) {}
log_msg(log_msg&& other):log_msg()
{
swap(*this, other);
}
log_msg(log_msg&& other)
{
swap(*this, other);
}
friend void swap(log_msg& l, log_msg& r)
{
using std::swap;
swap(l.msg_level, r.msg_level);
swap(l.msg_time, r.msg_time);
swap(l.msg_header_size, r.msg_header_size);
swap(l.str, r.str);
}
friend void swap(log_msg& l, log_msg& r)
{
using std::swap;
swap(l.level, r.level);
swap(l.time, r.time);
swap(l.raw, r.raw);
swap(l.formatted, r.formatted);
}
log_msg& operator=(log_msg other)
{
swap(*this, other);
return *this;
}
log_msg& operator=(log_msg other)
{
swap(*this, other);
return *this;
}
void clear()
{
msg_header_size = 0;
str.clear();
}
void clear()
{
raw.clear();
formatted.clear();
}
level::level_enum msg_level;
log_clock::time_point msg_time;
std::size_t msg_header_size;
std::string str;
level::level_enum level;
log_clock::time_point time;
std::string raw;
std::string formatted;
};
}

View File

@@ -44,23 +44,31 @@ inline bool operator!=(const std::tm& tm1, const std::tm& tm2)
return !(tm1==tm2);
}
#ifdef _WIN32
inline const char* eol()
{
return "\r\n";
}
#else
constexpr inline const char* eol()
{
#ifdef _WIN32
return "\r\n";
#else
return "\n";
#endif
}
#endif
#ifdef _WIN32
inline unsigned short eol_size()
{
return 2;
}
#else
constexpr inline unsigned short eol_size()
{
#ifdef _WIN32
return 2;
#else
return 1;
#endif
}
#endif
} //os
} //details
} //c11log