Add `std::optional` replacement (`nonstd::optional`)
[babeltrace.git] / src / logging / log.h
index 8fbb3cdbc5abab35e9e6c27b168a2edeb166c4db..25136ab7d99ce67114bf94e6834a9d9aabce686c 100644 (file)
@@ -1,7 +1,10 @@
 /*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright (c) 2016 wonder-mice
+ *
  * This is zf_log.h, modified with Babeltrace prefixes.
  * See <https://github.com/wonder-mice/zf_log/>.
- * See logging/LICENSE in the Babeltrace source tree.
  */
 
 #pragma once
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <babeltrace2/logging.h>
+#include <babeltrace2/babeltrace.h>
+
+/* Access private __BT_LOGGING_LEVEL_* macros. */
+#define __BT_IN_BABELTRACE_H
+#include <babeltrace2/logging-defs.h>
+#undef __BT_IN_BABELTRACE_H
+
 #include "common/macros.h"
 #include "common/assert.h"
 
@@ -40,7 +49,7 @@
  * - BT_LOG_ERROR - happened something possible, but highly unexpected. The
  *   process is able to recover and continue execution.
  *   Example: out of memory (could also be FATAL if not handled properly).
- * - BT_LOG_WARN - happened something that *usually* should not happen and
+ * - BT_LOG_WARNING - happened something that *usually* should not happen and
  *   significantly changes application behavior for some period of time.
  *   Example: configuration file not found, auth error.
  * - BT_LOG_INFO - happened significant life cycle event or major state
  * should be empty or very small. Choosing a right log level is as important as
  * providing short and self descriptive log message.
  */
-#define BT_LOG_TRACE   BT_LOGGING_LEVEL_TRACE
-#define BT_LOG_DEBUG   BT_LOGGING_LEVEL_DEBUG
-#define BT_LOG_INFO    BT_LOGGING_LEVEL_INFO
-#define BT_LOG_WARN    BT_LOGGING_LEVEL_WARN
-#define BT_LOG_ERROR   BT_LOGGING_LEVEL_ERROR
-#define BT_LOG_FATAL   BT_LOGGING_LEVEL_FATAL
-#define BT_LOG_NONE    BT_LOGGING_LEVEL_NONE
+#define BT_LOG_TRACE   __BT_LOGGING_LEVEL_TRACE
+#define BT_LOG_DEBUG   __BT_LOGGING_LEVEL_DEBUG
+#define BT_LOG_INFO    __BT_LOGGING_LEVEL_INFO
+#define BT_LOG_WARNING __BT_LOGGING_LEVEL_WARNING
+#define BT_LOG_ERROR   __BT_LOGGING_LEVEL_ERROR
+#define BT_LOG_FATAL   __BT_LOGGING_LEVEL_FATAL
+#define BT_LOG_NONE    __BT_LOGGING_LEVEL_NONE
 
 /* "Current" log level is a compile time check and has no runtime overhead. Log
  * level that is below current log level it said to be "disabled".
 #define BT_LOG_SRCLOC_SHORT 1
 #define BT_LOG_SRCLOC_LONG  2
 
-/* Source location format is configured per compilation module (.c/.cpp/.m
- * file) by defining BT_LOG_DEF_SRCLOC or BT_LOG_SRCLOC. BT_LOG_SRCLOC has
- * higer priority and when defined overrides value provided by
- * BT_LOG_DEF_SRCLOC.
- *
- * Common practice is to define default format with BT_LOG_DEF_SRCLOC in
- * build script (e.g. Makefile, CMakeLists.txt, gyp, etc.) for the entire
- * project or target:
- *
- *   CC_ARGS := -DBT_LOG_DEF_SRCLOC=BT_LOG_SRCLOC_LONG
- *
- * And when necessary to override it with BT_LOG_SRCLOC in .c/.cpp/.m files
- * before including bt_log.h:
- *
- *   #define BT_LOG_SRCLOC BT_LOG_SRCLOC_NONE
- *   #include "logging.h"
- *
- * If both BT_LOG_DEF_SRCLOC and BT_LOG_SRCLOC are undefined, then
- * BT_LOG_SRCLOC_NONE will be used for release builds (BT_DEBUG_MODE is
- * NOT defined) and BT_LOG_SRCLOC_LONG otherwise (BT_DEBUG_MODE is
- * defined).
- */
-#if defined(BT_LOG_SRCLOC)
-       #define _BT_LOG_SRCLOC BT_LOG_SRCLOC
-#elif defined(BT_LOG_DEF_SRCLOC)
-       #define _BT_LOG_SRCLOC BT_LOG_DEF_SRCLOC
-#else
-       #ifdef BT_DEBUG_MODE
-               #define _BT_LOG_SRCLOC BT_LOG_SRCLOC_LONG
-       #else
-               #define _BT_LOG_SRCLOC BT_LOG_SRCLOC_NONE
-       #endif
-#endif
+#define _BT_LOG_SRCLOC BT_LOG_SRCLOC_LONG
+
 #if BT_LOG_SRCLOC_LONG == _BT_LOG_SRCLOC
        #define _BT_LOG_SRCLOC_FUNCTION _BT_LOG_FUNCTION
 #else
@@ -648,7 +626,7 @@ bt_log_spec;
 #define BT_LOG_ENABLED_TRACE    BT_LOG_ENABLED(BT_LOG_TRACE)
 #define BT_LOG_ENABLED_DEBUG    BT_LOG_ENABLED(BT_LOG_DEBUG)
 #define BT_LOG_ENABLED_INFO     BT_LOG_ENABLED(BT_LOG_INFO)
-#define BT_LOG_ENABLED_WARN     BT_LOG_ENABLED(BT_LOG_WARN)
+#define BT_LOG_ENABLED_WARNING  BT_LOG_ENABLED(BT_LOG_WARNING)
 #define BT_LOG_ENABLED_ERROR    BT_LOG_ENABLED(BT_LOG_ERROR)
 #define BT_LOG_ENABLED_FATAL    BT_LOG_ENABLED(BT_LOG_FATAL)
 
@@ -672,7 +650,7 @@ bt_log_spec;
 #define BT_LOG_ON_TRACE     BT_LOG_ON(BT_LOG_TRACE)
 #define BT_LOG_ON_DEBUG     BT_LOG_ON(BT_LOG_DEBUG)
 #define BT_LOG_ON_INFO      BT_LOG_ON(BT_LOG_INFO)
-#define BT_LOG_ON_WARN      BT_LOG_ON(BT_LOG_WARN)
+#define BT_LOG_ON_WARNING   BT_LOG_ON(BT_LOG_WARNING)
 #define BT_LOG_ON_ERROR     BT_LOG_ON(BT_LOG_ERROR)
 #define BT_LOG_ON_FATAL     BT_LOG_ON(BT_LOG_FATAL)
 
@@ -892,6 +870,7 @@ static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
                        BT_LOG_WRITE_MEM(log, BT_LOG_TRACE, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGT(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGT_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGT_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGT_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGT_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
@@ -910,6 +889,7 @@ static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
                        BT_LOG_WRITE_MEM_AUX(log, BT_LOG_DEBUG, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGD(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGD_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGD_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGD_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGD_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
@@ -928,24 +908,26 @@ static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
                        BT_LOG_WRITE_MEM_AUX(log, BT_LOG_INFO, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGI(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGI_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGI_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGI_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGI_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
 #endif
 
-#if BT_LOG_ENABLED_WARN
+#if BT_LOG_ENABLED_WARNING
        #define BT_LOGW(...) \
-                       BT_LOG_WRITE(BT_LOG_WARN, _BT_LOG_TAG, __VA_ARGS__)
+                       BT_LOG_WRITE(BT_LOG_WARNING, _BT_LOG_TAG, __VA_ARGS__)
        #define BT_LOGW_ERRNO(...) \
-                       BT_LOG_WRITE_ERRNO(BT_LOG_WARN, _BT_LOG_TAG, __VA_ARGS__)
+                       BT_LOG_WRITE_ERRNO(BT_LOG_WARNING, _BT_LOG_TAG, __VA_ARGS__)
        #define BT_LOGW_AUX(log, ...) \
-                       BT_LOG_WRITE_AUX(log, BT_LOG_WARN, _BT_LOG_TAG, __VA_ARGS__)
+                       BT_LOG_WRITE_AUX(log, BT_LOG_WARNING, _BT_LOG_TAG, __VA_ARGS__)
        #define BT_LOGW_MEM(d, d_sz, ...) \
-                       BT_LOG_WRITE_MEM(BT_LOG_WARN, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
+                       BT_LOG_WRITE_MEM(BT_LOG_WARNING, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
        #define BT_LOGW_MEM_AUX(log, d, d_sz, ...) \
-                       BT_LOG_WRITE_MEM_AUX(log, BT_LOG_WARN, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
+                       BT_LOG_WRITE_MEM_AUX(log, BT_LOG_WARNING, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGW(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGW_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGW_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGW_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGW_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
@@ -964,6 +946,7 @@ static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
                        BT_LOG_WRITE_MEM_AUX(log, BT_LOG_ERROR, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGE(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGE_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGE_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGE_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGE_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
@@ -982,6 +965,7 @@ static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
                        BT_LOG_WRITE_MEM_AUX(log, BT_LOG_FATAL, _BT_LOG_TAG, d, d_sz, __VA_ARGS__)
 #else
        #define BT_LOGF(...) _BT_LOG_UNUSED(__VA_ARGS__)
+       #define BT_LOGF_ERRNO(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGF_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGF_MEM(...) _BT_LOG_UNUSED(__VA_ARGS__)
        #define BT_LOGF_MEM_AUX(...) _BT_LOG_UNUSED(__VA_ARGS__)
@@ -1046,7 +1030,7 @@ char bt_log_get_letter_from_level(int level)
        case BT_LOG_INFO:
                letter = 'I';
                break;
-       case BT_LOG_WARN:
+       case BT_LOG_WARNING:
                letter = 'W';
                break;
        case BT_LOG_ERROR:
@@ -1088,7 +1072,7 @@ int bt_log_get_level_from_string(const char *str)
        } else if (strcmp(str, "WARN") == 0 ||
                        strcmp(str, "WARNING") == 0 ||
                        strcmp(str, "W") == 0) {
-               level = BT_LOG_WARN;
+               level = BT_LOG_WARNING;
        } else if (strcmp(str, "ERROR") == 0 ||
                        strcmp(str, "E") == 0) {
                level = BT_LOG_ERROR;
This page took 0.038501 seconds and 4 git commands to generate.