]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
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) ("[%s:" ROCKS_LOG_TOSTRING(__LINE__) "] " FMT) | |
19 | ||
20 | inline const char* RocksLogShorterFileName(const char* file) | |
21 | { | |
20effc67 | 22 | // 18 is the length of "logging/logging.h". |
f67539c2 | 23 | // If the name of this file changed, please change this number, too. |
20effc67 | 24 | return file + (sizeof(__FILE__) > 18 ? sizeof(__FILE__) - 18 : 0); |
f67539c2 TL |
25 | } |
26 | ||
27 | // Don't inclide file/line info in HEADER level | |
28 | #define ROCKS_LOG_HEADER(LGR, FMT, ...) \ | |
29 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::HEADER_LEVEL, LGR, FMT, ##__VA_ARGS__) | |
30 | ||
31 | #define ROCKS_LOG_DEBUG(LGR, FMT, ...) \ | |
32 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::DEBUG_LEVEL, LGR, \ | |
33 | ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
34 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
35 | ||
36 | #define ROCKS_LOG_INFO(LGR, FMT, ...) \ | |
37 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::INFO_LEVEL, LGR, \ | |
38 | ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
39 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
40 | ||
41 | #define ROCKS_LOG_WARN(LGR, FMT, ...) \ | |
42 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::WARN_LEVEL, LGR, \ | |
43 | ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
44 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
45 | ||
46 | #define ROCKS_LOG_ERROR(LGR, FMT, ...) \ | |
47 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::ERROR_LEVEL, LGR, \ | |
48 | ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
49 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
50 | ||
51 | #define ROCKS_LOG_FATAL(LGR, FMT, ...) \ | |
52 | ROCKSDB_NAMESPACE::Log(InfoLogLevel::FATAL_LEVEL, LGR, \ | |
53 | ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
54 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
55 | ||
56 | #define ROCKS_LOG_BUFFER(LOG_BUF, FMT, ...) \ | |
57 | ROCKSDB_NAMESPACE::LogToBuffer(LOG_BUF, ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
58 | RocksLogShorterFileName(__FILE__), \ | |
59 | ##__VA_ARGS__) | |
60 | ||
61 | #define ROCKS_LOG_BUFFER_MAX_SZ(LOG_BUF, MAX_LOG_SIZE, FMT, ...) \ | |
62 | ROCKSDB_NAMESPACE::LogToBuffer( \ | |
63 | LOG_BUF, MAX_LOG_SIZE, ROCKS_LOG_PREPEND_FILE_LINE(FMT), \ | |
64 | RocksLogShorterFileName(__FILE__), ##__VA_ARGS__) | |
65 | ||
66 | #define ROCKS_LOG_DETAILS(LGR, FMT, ...) \ | |
67 | ; // due to overhead by default skip such lines | |
68 | // ROCKS_LOG_DEBUG(LGR, FMT, ##__VA_ARGS__) |