diff options
| author | Dan Willemsen <dwillemsen@google.com> | 2020-06-26 18:46:21 -0700 |
|---|---|---|
| committer | Dan Willemsen <dwillemsen@google.com> | 2020-06-26 18:52:06 -0700 |
| commit | 979e7ae6e417ae4ee45e835104b66191ae16a14c (patch) | |
| tree | 6b5075e832cbdf2a7996a25a26659363527b6e4c /src/log.h | |
| parent | 003cf51e9b6da48063c90cf4c6710fde103c9c4a (diff) | |
| download | platform_build_kati-979e7ae6e417ae4ee45e835104b66191ae16a14c.tar.gz platform_build_kati-979e7ae6e417ae4ee45e835104b66191ae16a14c.tar.bz2 platform_build_kati-979e7ae6e417ae4ee45e835104b66191ae16a14c.zip | |
Refactor source tree into directories
Now instead of almost every file in the top level, move the old go code
into its own directory 'golang', and the C++ code into it's own 'src'
Also removes a few obsolete scripts that were used to work on Android
before Android fully switched to Kati.
Diffstat (limited to 'src/log.h')
| -rw-r--r-- | src/log.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/log.h b/src/log.h new file mode 100644 index 0000000..ba0bd8b --- /dev/null +++ b/src/log.h @@ -0,0 +1,107 @@ +// Copyright 2015 Google Inc. All rights reserved +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LOG_H_ +#define LOG_H_ + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "flags.h" +#include "log.h" +#include "stringprintf.h" + +using namespace std; + +extern bool g_log_no_exit; +extern string* g_last_error; + +// Useful for logging-only arguments. +#define UNUSED __attribute__((unused)) + +#ifdef NOLOG +#define LOG(args...) +#else +#define LOG(args...) \ + do { \ + fprintf(stderr, "*kati*: %s\n", StringPrintf(args).c_str()); \ + } while (0) +#endif + +#define LOG_STAT(args...) \ + do { \ + if (g_flags.enable_stat_logs) \ + fprintf(stderr, "*kati*: %s\n", StringPrintf(args).c_str()); \ + } while (0) + +#define PLOG(...) \ + do { \ + fprintf(stderr, "%s: %s\n", StringPrintf(__VA_ARGS__).c_str(), \ + strerror(errno)); \ + } while (0) + +#define PERROR(...) \ + do { \ + PLOG(__VA_ARGS__); \ + exit(1); \ + } while (0) + +#define WARN(...) \ + do { \ + fprintf(stderr, "%s\n", StringPrintf(__VA_ARGS__).c_str()); \ + } while (0) + +#define KATI_WARN(...) \ + do { \ + if (g_flags.enable_kati_warnings) \ + fprintf(stderr, "%s\n", StringPrintf(__VA_ARGS__).c_str()); \ + } while (0) + +#define ERROR(...) \ + do { \ + if (!g_log_no_exit) { \ + fprintf(stderr, "%s\n", StringPrintf(__VA_ARGS__).c_str()); \ + exit(1); \ + } \ + g_last_error = new string(StringPrintf(__VA_ARGS__)); \ + } while (0) + +#define CHECK(c) \ + if (!(c)) \ + ERROR("%s:%d: %s", __FILE__, __LINE__, #c) + +// Set of logging functions that will automatically colorize lines that have +// location information when --color_warnings is set. +void ColorWarnLog(const char* file, int line, const char* msg); +void ColorErrorLog(const char* file, int line, const char* msg); + +#define WARN_LOC(loc, ...) \ + do { \ + ColorWarnLog(LOCF(loc), StringPrintf(__VA_ARGS__).c_str()); \ + } while (0) + +#define KATI_WARN_LOC(loc, ...) \ + do { \ + if (g_flags.enable_kati_warnings) \ + ColorWarnLog(LOCF(loc), StringPrintf(__VA_ARGS__).c_str()); \ + } while (0) + +#define ERROR_LOC(loc, ...) \ + do { \ + ColorErrorLog(LOCF(loc), StringPrintf(__VA_ARGS__).c_str()); \ + } while (0) + +#endif // LOG_H_ |
