void Security(const std::string& what, const std::string& format, const Args&... args) { extern Logger security; std::ostringstream os; os << util::ToUpperCopy(what) << ": " << format; security.PushEntry("message", util::Format()(os.str(), args...).String()); }
inline void Security(const std::string& what, const std::string& message) { extern Logger security; std::ostringstream os; os << util::ToUpperCopy(what) << ": " << message; security.PushEntry("message", os.str()); }
inline void Transfer(const std::string& path, const std::string& direction, const std::string& username, const std::string& groupname, double startTime, long long kBytes, double xfertime, bool okay, const std::string& section) { extern Logger transfer; transfer.PushEntry(QuoteOn(), "epoch start", startTime, "direction", direction, "username", username, "groupname", groupname, "size", kBytes, "seconds", xfertime, "okay", okay ? "okay" : "fail", "section", section, "path", path); }
void Debug(const std::string& format, const Args&... args) { extern Logger debug; extern std::string ThreadID(); debug.PushEntry("thread", Brackets('[', ']'), ThreadID(), "message", util::Format()(format, args...).String()); }
void Event(const std::string& what, const Args&... args) { extern Logger events; events.PushEntry("event", Tag(), util::ToUpperCopy(what), QuoteOn(), args...); }
void Siteop(const std::string& admin, const std::string& format, const Args&... args) { extern Logger siteop; siteop.PushEntry("admin", Quote('\''), admin, "message", util::Format()(format, args...)); }
void Database(const std::string& format, const Args&... args) { extern Logger db; db.PushEntry("message", util::Format()(format, args...).String()); }
inline void Database(const std::string& message) { extern Logger db; db.PushEntry("message", message); }
void Debug(const std::string& format, const Args&... args) { extern Logger debug; debug.PushEntry("message", util::Format()(format, args...).String()); }
inline void Debug(const std::string& message) { extern Logger debug; debug.PushEntry("message", message); }
inline void Siteop(const std::string& admin, const std::string& message) { extern Logger siteop; siteop.PushEntry("admin", Quote('\''), admin, "message", message); }
void Error(const std::string& format, const Args&... args) { extern Logger error; error.PushEntry("message", util::Format()(format, args...).String()); }
inline void Error(const std::string& message) { extern Logger error; error.PushEntry("message", message); }