1 #ifndef __syslogstream_h__
2 #define __syslogstream_h__
25 #define mapItem(s) {#s,static_cast<level>(LOG_##s)}
38 if (l.name == aName) {
42 throw std::runtime_error(
"unknown level name " + aName);
46 if (l.Level == aLevel) {
50 throw std::runtime_error(
"illegal level");
59 if (c ==
'\n' || !c || c == EOF) {
94 logstream(
const std::string& aLevel) : std::ostream(&buffer), buffer(aLevel) {}
104 provider(
const std::string& name, std::ostream& aDefaultStream = std::cout) :
105 defaultStream(name ==
"std::cerr" ? std::cerr : aDefaultStream) {
106 if (name.empty() || name ==
"std::cerr") {
108 }
else if (name.compare(0, 6,
"syslog") == 0) {
109 auto defaultLevel = name.substr(6);
110 if (defaultLevel.empty()) {
111 defaultLevel =
"INFO";
113 defaultLevel.erase(0, 1);
117 stream =
new std::ofstream(name, std::ios::out | std::ios::ate);
132 if (logStream !=
nullptr) {