[ox] Add file:line error tracing

This commit is contained in:
2018-05-31 22:45:57 -05:00
parent 956415a6a2
commit ea7cf59ec7
17 changed files with 438 additions and 215 deletions

View File

@@ -54,4 +54,16 @@ NullStream::NullStream(const char*, int, const char*, const char*) {
NullStream::~NullStream() {
}
void logError(const char *file, int line, Error err) {
if (err) {
ErrorInfo ei(err);
TraceStream trc(file, line, "ox::error");
trc << "\tError:\t" << ei.errCode;
if (ei.file != nullptr) {
trc << " (" << reinterpret_cast<const char*>(ei.file) << ':' << ei.line << ')';
}
}
}
}

View File

@@ -91,6 +91,12 @@ class NullStream {
};
using TraceStream = StdOutStream;
void logError(const char *file, int line, Error err);
}
#define oxTrace(ch) ox::trace::StdOutStream(__FILE__, __LINE__, ch)
#define oxLogError(err) ox::trace::logError(__FILE__, __LINE__, err)
#define oxTrace(ch) ox::trace::TraceStream(__FILE__, __LINE__, ch)