Coverage Report

Created: 2024-07-27 06:53

/src/rocksdb/logging/logging.h
Line
Count
Source (jump to first uncovered line)
1
//  Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
2
//  This source code is licensed under both the GPLv2 (found in the
3
//  COPYING file in the root directory) and Apache 2.0 License
4
//  (found in the LICENSE.Apache file in the root directory).
5
//
6
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
7
// Use of this source code is governed by a BSD-style license that can be
8
// found in the LICENSE file. See the AUTHORS file for names of contributors.
9
//
10
// Must not be included from any .h files to avoid polluting the namespace
11
// with macros.
12
13
#pragma once
14
15
// Helper macros that include information about file name and line number
16
#define ROCKS_LOG_STRINGIFY(x) #x
17
#define ROCKS_LOG_TOSTRING(x) ROCKS_LOG_STRINGIFY(x)
18
#define ROCKS_LOG_PREPEND_FILE_LINE(FMT) \
19
262k
  ("[%s:" ROCKS_LOG_TOSTRING(__LINE__) "] " FMT)
20
21
262k
inline const char* RocksLogShorterFileName(const char* file) {
22
  // 18 is the length of "logging/logging.h".
23
  // If the name of this file changed, please change this number, too.
24
262k
  return file + (sizeof(__FILE__) > 18 ? sizeof(__FILE__) - 18 : 0);
25
262k
}
26
27
// Don't inclide file/line info in HEADER level
28
#define ROCKS_LOG_HEADER(LGR, FMT, ...) \
29
4.29M
  ROCKSDB_NAMESPACE::Log(InfoLogLevel::HEADER_LEVEL, LGR, FMT, ##__VA_ARGS__)
30
31
#define ROCKS_LOG_AT_LEVEL(LGR, LVL, FMT, ...)                           \
32
245k
  ROCKSDB_NAMESPACE::Log((LVL), (LGR), ROCKS_LOG_PREPEND_FILE_LINE(FMT), \
33
33.9k
                         RocksLogShorterFileName(__FILE__), ##__VA_ARGS__)
34
35
#define ROCKS_LOG_DEBUG(LGR, FMT, ...) \
36
38.2k
  ROCKS_LOG_AT_LEVEL((LGR), InfoLogLevel::DEBUG_LEVEL, FMT, ##__VA_ARGS__)
37
38
#define ROCKS_LOG_INFO(LGR, FMT, ...) \
39
207k
  ROCKS_LOG_AT_LEVEL((LGR), InfoLogLevel::INFO_LEVEL, FMT, ##__VA_ARGS__)
40
41
#define ROCKS_LOG_WARN(LGR, FMT, ...) \
42
7
  ROCKS_LOG_AT_LEVEL((LGR), InfoLogLevel::WARN_LEVEL, FMT, ##__VA_ARGS__)
43
44
#define ROCKS_LOG_ERROR(LGR, FMT, ...) \
45
18.4E
  ROCKS_LOG_AT_LEVEL((LGR), InfoLogLevel::ERROR_LEVEL, FMT, ##__VA_ARGS__)
46
47
#define ROCKS_LOG_FATAL(LGR, FMT, ...) \
48
0
  ROCKS_LOG_AT_LEVEL((LGR), InfoLogLevel::FATAL_LEVEL, FMT, ##__VA_ARGS__)
49
50
#define ROCKS_LOG_BUFFER(LOG_BUF, FMT, ...)                                 \
51
16.5k
  ROCKSDB_NAMESPACE::LogToBuffer(LOG_BUF, ROCKS_LOG_PREPEND_FILE_LINE(FMT), \
52
0
                                 RocksLogShorterFileName(__FILE__),         \
53
20.5k
                                 ##__VA_ARGS__)
54
55
#define ROCKS_LOG_BUFFER_MAX_SZ(LOG_BUF, MAX_LOG_SIZE, FMT, ...) \
56
0
  ROCKSDB_NAMESPACE::LogToBuffer(                                \
57
0
      LOG_BUF, MAX_LOG_SIZE, ROCKS_LOG_PREPEND_FILE_LINE(FMT),   \
58
0
      RocksLogShorterFileName(__FILE__), ##__VA_ARGS__)
59
60
#define ROCKS_LOG_DETAILS(LGR, FMT, ...) \
61
0
  ;  // due to overhead by default skip such lines
62
// ROCKS_LOG_DEBUG(LGR, FMT, ##__VA_ARGS__)