Files
allwpilib/src/main/native/cpp/Log.cpp

46 lines
1.4 KiB
C++
Raw Normal View History

2016-09-05 12:00:36 -07:00
/*----------------------------------------------------------------------------*/
2017-08-25 17:48:06 -07:00
/* Copyright (c) 2016-2017 FIRST. All Rights Reserved. */
2016-09-05 12:00:36 -07:00
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
#include "Log.h"
#include <llvm/Path.h>
#include <llvm/SmallString.h>
#include <llvm/StringRef.h>
#include <llvm/raw_ostream.h>
2016-09-05 12:00:36 -07:00
using namespace cs;
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);
2016-09-05 12:00:36 -07:00
if (level == 20) {
oss << "CS: " << msg << '\n';
llvm::errs() << oss.str();
2016-09-05 12:00:36 -07:00
return;
}
llvm::StringRef levelmsg;
2016-09-05 12:00:36 -07:00
if (level >= 50)
levelmsg = "CRITICAL: ";
2016-09-05 12:00:36 -07:00
else if (level >= 40)
levelmsg = "ERROR: ";
2016-09-05 12:00:36 -07:00
else if (level >= 30)
levelmsg = "WARNING: ";
2016-09-05 12:00:36 -07:00
else
return;
oss << "CS: " << levelmsg << msg << " (" << llvm::sys::path::filename(file)
<< ':' << line << ")\n";
llvm::errs() << oss.str();
2016-09-05 12:00:36 -07:00
}
Logger::Logger() { SetDefaultLogger(); }
2016-09-05 12:00:36 -07:00
Logger::~Logger() {}
void Logger::SetDefaultLogger() { SetLogger(def_log_func); }