mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
Log.cpp: Use raw_ostream and llvm path functions. (#93)
This commit is contained in:
@@ -7,21 +7,10 @@
|
||||
|
||||
#include "Log.h"
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <libgen.h>
|
||||
#endif
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include <libgen.h>
|
||||
#endif
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <cstring>
|
||||
#endif
|
||||
#include <llvm/Path.h>
|
||||
#include <llvm/SmallString.h>
|
||||
#include <llvm/StringRef.h>
|
||||
#include <llvm/raw_ostream.h>
|
||||
|
||||
using namespace cs;
|
||||
|
||||
@@ -29,37 +18,26 @@ ATOMIC_STATIC_INIT(Logger)
|
||||
|
||||
static void def_log_func(unsigned int level, const char* file,
|
||||
unsigned int line, const char* msg) {
|
||||
llvm::SmallString<128> buf;
|
||||
llvm::raw_svector_ostream oss(buf);
|
||||
if (level == 20) {
|
||||
std::fprintf(stderr, "CS: %s\n", msg);
|
||||
oss << "CS: " << msg << '\n';
|
||||
llvm::errs() << oss.str();
|
||||
return;
|
||||
}
|
||||
|
||||
const char* levelmsg;
|
||||
llvm::StringRef levelmsg;
|
||||
if (level >= 50)
|
||||
levelmsg = "CRITICAL";
|
||||
levelmsg = "CRITICAL: ";
|
||||
else if (level >= 40)
|
||||
levelmsg = "ERROR";
|
||||
levelmsg = "ERROR: ";
|
||||
else if (level >= 30)
|
||||
levelmsg = "WARNING";
|
||||
levelmsg = "WARNING: ";
|
||||
else
|
||||
return;
|
||||
#ifdef _WIN32
|
||||
char fname[60];
|
||||
char ext[10];
|
||||
_splitpath_s(file, nullptr, 0, nullptr, 0, fname, 60, ext, 10);
|
||||
std::fprintf(stderr, "CS: %s: %s (%s%s:%d)\n", levelmsg, msg, fname, ext,
|
||||
line);
|
||||
#elif __APPLE__
|
||||
int len = std::strlen(msg) + 1;
|
||||
char* basestr = new char[len + 1];
|
||||
std::strncpy(basestr, file, len);
|
||||
std::fprintf(stderr, "CS: %s: %s (%s:%d)\n", levelmsg, msg, basename(basestr),
|
||||
line);
|
||||
delete[] basestr;
|
||||
#else
|
||||
std::fprintf(stderr, "CS: %s: %s (%s:%d)\n", levelmsg, msg, basename(file),
|
||||
line);
|
||||
#endif
|
||||
oss << "CS: " << levelmsg << msg << " (" << llvm::sys::path::filename(file)
|
||||
<< ':' << line << ")\n";
|
||||
llvm::errs() << oss.str();
|
||||
}
|
||||
|
||||
Logger::Logger() { SetDefaultLogger(); }
|
||||
|
||||
Reference in New Issue
Block a user