43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
#ifndef _NB_ERROR
|
|
#define _NB_ERROR
|
|
|
|
#include "ErrorsImpl.hpp"
|
|
#include "Logger.hpp"
|
|
|
|
namespace nb {
|
|
|
|
#ifdef _NB_AUTOLOG
|
|
#ifdef _NB_CODE_ERROR_LOCATIONS
|
|
#ifndef LOG
|
|
#define LOG(args...) nb::logger.log(args, __FILE__, __LINE__)
|
|
#endif // LOG
|
|
#ifndef WARN
|
|
#define WARN(args...) nb::logger.warn(args, __FILE__, __LINE__)
|
|
#endif // WARN
|
|
#ifndef ERROR
|
|
#define ERROR(args...) nb::logger.error(args, __FILE__, __LINE__)
|
|
#endif // ERROR
|
|
#else
|
|
#ifndef LOG
|
|
#define LOG(args...) nb::logger.log(args)
|
|
#endif // LOG
|
|
#ifndef WARN
|
|
#define WARN(args...) nb::logger.warn(args)
|
|
#endif // WARN
|
|
#ifndef ERROR
|
|
#define ERROR(args...) nb::logger.error(args)
|
|
#endif // ERROR
|
|
#endif // _NB_CODE_ERROR_LOCATIONS
|
|
#endif // _NB_AUTOLOG
|
|
|
|
#ifndef THROW
|
|
#ifdef _NB_AUTOLOG
|
|
#define THROW(args...) ERROR(args); nb::logger.stop(); throw args
|
|
#else
|
|
#define THROW(args...) throw args
|
|
#endif // _NB_CODE_ERROR_LOCATIONS
|
|
#endif // THROW
|
|
} // namespace nb
|
|
|
|
#endif // _NB_ERROR
|