/src/rocksdb/logging/event_logger.cc
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 | | #include "logging/event_logger.h" |
7 | | |
8 | | #include <cassert> |
9 | | #include <cinttypes> |
10 | | #include <sstream> |
11 | | #include <string> |
12 | | |
13 | | #include "util/string_util.h" |
14 | | |
15 | | namespace ROCKSDB_NAMESPACE { |
16 | | |
17 | | EventLoggerStream::EventLoggerStream(Logger* logger) |
18 | | : logger_(logger), |
19 | | log_buffer_(nullptr), |
20 | | max_log_size_(0), |
21 | 9.02k | json_writer_(nullptr) {} |
22 | | |
23 | | EventLoggerStream::EventLoggerStream(LogBuffer* log_buffer, |
24 | | const size_t max_log_size) |
25 | | : logger_(nullptr), |
26 | | log_buffer_(log_buffer), |
27 | | max_log_size_(max_log_size), |
28 | 0 | json_writer_(nullptr) {} |
29 | | |
30 | 9.02k | EventLoggerStream::~EventLoggerStream() { |
31 | 9.02k | if (json_writer_) { |
32 | 9.02k | json_writer_->EndObject(); |
33 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
34 | | printf("%s\n", json_writer_->Get().c_str()); |
35 | | #else |
36 | 9.02k | if (logger_) { |
37 | 9.02k | EventLogger::Log(logger_, *json_writer_); |
38 | 9.02k | } else if (log_buffer_) { |
39 | 0 | assert(max_log_size_); |
40 | 0 | EventLogger::LogToBuffer(log_buffer_, *json_writer_, max_log_size_); |
41 | 0 | } |
42 | 9.02k | #endif |
43 | 9.02k | delete json_writer_; |
44 | 9.02k | } |
45 | 9.02k | } |
46 | | |
47 | 4.48k | void EventLogger::Log(const JSONWriter& jwriter) { Log(logger_, jwriter); } |
48 | | |
49 | 13.5k | void EventLogger::Log(Logger* logger, const JSONWriter& jwriter) { |
50 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
51 | | printf("%s\n", jwriter.Get().c_str()); |
52 | | #else |
53 | 13.5k | ROCKSDB_NAMESPACE::Log(logger, "%s %s", Prefix(), jwriter.Get().c_str()); |
54 | 13.5k | #endif |
55 | 13.5k | } |
56 | | |
57 | | void EventLogger::LogToBuffer(LogBuffer* log_buffer, const JSONWriter& jwriter, |
58 | 0 | const size_t max_log_size) { |
59 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
60 | | printf("%s\n", jwriter.Get().c_str()); |
61 | | #else |
62 | 0 | assert(log_buffer); |
63 | 0 | ROCKSDB_NAMESPACE::LogToBuffer(log_buffer, max_log_size, "%s %s", Prefix(), |
64 | 0 | jwriter.Get().c_str()); |
65 | 0 | #endif |
66 | 0 | } |
67 | | |
68 | | } // namespace ROCKSDB_NAMESPACE |