1 #ifndef C10_UTIL_LOGGING_IS_NOT_GOOGLE_GLOG_H_ 2 #define C10_UTIL_LOGGING_IS_NOT_GOOGLE_GLOG_H_ 15 #include "c10/util/Flags.h" 19 #if !defined(_MSC_VER) || !defined(ERROR) 26 const int WARNING = 1;
28 const char CAFFE2_SEVERITY_PREFIX[] =
"FEWIV";
36 std::stringstream& stream() {
42 void DealWithFatal() {
47 std::stringstream stream_;
59 void operator&(
const std::ostream& s) {}
64 void LogMessageFatal(
const char* file,
int line,
const T& message) {
71 T& CheckNotNullCommon(
const char* file,
int line,
const char* names,
T& t) {
73 LogMessageFatal(file, line, std::string(names));
79 T* CheckNotNull(
const char* file,
int line,
const char* names,
T* t) {
80 return CheckNotNullCommon(file, line, names, t);
84 T& CheckNotNull(
const char* file,
int line,
const char* names,
T& t) {
85 return CheckNotNullCommon(file, line, names, t);
92 CAFFE2_LOG_THRESHOLD <= FATAL,
93 "CAFFE2_LOG_THRESHOLD should at most be FATAL.");
97 if (n >= CAFFE2_LOG_THRESHOLD) \ 98 ::c10::MessageLogger((char*)__FILE__, __LINE__, n).stream() 99 #define VLOG(n) LOG((-n)) 101 #define LOG_IF(n, condition) \ 102 if (n >= CAFFE2_LOG_THRESHOLD && (condition)) \ 103 ::c10::MessageLogger((char*)__FILE__, __LINE__, n).stream() 104 #define VLOG_IF(n, condition) LOG_IF((-n), (condition)) 106 #define VLOG_IS_ON(verboselevel) (CAFFE2_LOG_THRESHOLD <= -(verboselevel)) 109 #define FATAL_IF(condition) \ 110 condition ? (void)0 \ 111 : ::c10::LoggerVoidify() & \ 112 ::c10::MessageLogger((char*)__FILE__, __LINE__, FATAL).stream() 115 #define CHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " " 119 #define DCHECK(condition) FATAL_IF(condition) << "Check failed: " #condition " " 122 #define DCHECK(condition) \ 127 #define CHECK_OP(val1, val2, op) \ 128 FATAL_IF((val1 op val2)) << "Check failed: " #val1 " " #op " " #val2 " " 131 #define CHECK_EQ(val1, val2) CHECK_OP(val1, val2, ==) 132 #define CHECK_NE(val1, val2) CHECK_OP(val1, val2, !=) 133 #define CHECK_LE(val1, val2) CHECK_OP(val1, val2, <=) 134 #define CHECK_LT(val1, val2) CHECK_OP(val1, val2, <) 135 #define CHECK_GE(val1, val2) CHECK_OP(val1, val2, >=) 136 #define CHECK_GT(val1, val2) CHECK_OP(val1, val2, >) 140 #define DCHECK_EQ(val1, val2) CHECK_OP(val1, val2, ==) 141 #define DCHECK_NE(val1, val2) CHECK_OP(val1, val2, !=) 142 #define DCHECK_LE(val1, val2) CHECK_OP(val1, val2, <=) 143 #define DCHECK_LT(val1, val2) CHECK_OP(val1, val2, <) 144 #define DCHECK_GE(val1, val2) CHECK_OP(val1, val2, >=) 145 #define DCHECK_GT(val1, val2) CHECK_OP(val1, val2, >) 148 #define DCHECK_EQ(val1, val2) \ 150 CHECK_OP(val1, val2, ==) 151 #define DCHECK_NE(val1, val2) \ 153 CHECK_OP(val1, val2, !=) 154 #define DCHECK_LE(val1, val2) \ 156 CHECK_OP(val1, val2, <=) 157 #define DCHECK_LT(val1, val2) \ 159 CHECK_OP(val1, val2, <) 160 #define DCHECK_GE(val1, val2) \ 162 CHECK_OP(val1, val2, >=) 163 #define DCHECK_GT(val1, val2) \ 165 CHECK_OP(val1, val2, >) 169 #define CHECK_NOTNULL(val) \ 170 ::c10::CheckNotNull( \ 171 __FILE__, __LINE__, "Check failed: '" #val "' Must be non NULL", (val)) 175 #define DCHECK_NOTNULL(val) \ 176 ::c10::CheckNotNull( \ 177 __FILE__, __LINE__, "Check failed: '" #val "' Must be non NULL", (val)) 180 #define DCHECK_NOTNULL(val) \ 193 template <
class First,
class Second>
194 std::ostream& operator<<(std::ostream& out, const std::pair<First, Second>& p);
198 template <
class Iter>
199 void PrintSequence(std::ostream& ss, Iter begin, Iter end);
203 #define INSTANTIATE_FOR_CONTAINER(container) \ 204 template <class... Types> \ 205 std::ostream& operator<<( \ 206 std::ostream& out, const container<Types...>& seq) { \ 207 c10::PrintSequence(out, seq.begin(), seq.end()); \ 211 INSTANTIATE_FOR_CONTAINER(std::vector)
212 INSTANTIATE_FOR_CONTAINER(std::map)
213 INSTANTIATE_FOR_CONTAINER(std::set)
214 #undef INSTANTIATE_FOR_CONTAINER 216 template <
class First,
class Second>
217 inline std::ostream& operator<<(
219 const std::pair<First, Second>& p) {
220 out <<
'(' << p.first <<
", " << p.second <<
')';
226 template <
class Iter>
227 inline void PrintSequence(std::ostream& out, Iter begin, Iter end) {
229 for (
int i = 0; begin != end && i < 100; ++i, ++begin) {
240 #endif // C10_UTIL_LOGGING_IS_NOT_GOOGLE_GLOG_H_
To register your own kernel for an operator, do in one (!) cpp file: C10_REGISTER_KERNEL(OperatorHand...