/Users/deen/code/yugabyte-db/src/yb/rocksdb/util/event_logger.cc
Line | Count | Source |
1 | | // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
2 | | // This source code is licensed under the BSD-style license found in the |
3 | | // LICENSE file in the root directory of this source tree. An additional grant |
4 | | // of patent rights can be found in the PATENTS file in the same directory. |
5 | | // |
6 | | // The following only applies to changes made to this file as part of YugaByte development. |
7 | | // |
8 | | // Portions Copyright (c) YugaByte, Inc. |
9 | | // |
10 | | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except |
11 | | // in compliance with the License. You may obtain a copy of the License at |
12 | | // |
13 | | // http://www.apache.org/licenses/LICENSE-2.0 |
14 | | // |
15 | | // Unless required by applicable law or agreed to in writing, software distributed under the License |
16 | | // is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
17 | | // or implied. See the License for the specific language governing permissions and limitations |
18 | | // under the License. |
19 | | // |
20 | | |
21 | | #ifndef __STDC_FORMAT_MACROS |
22 | | #define __STDC_FORMAT_MACROS |
23 | | #endif |
24 | | |
25 | | #include "yb/rocksdb/util/event_logger.h" |
26 | | |
27 | | #include <inttypes.h> |
28 | | #include <cassert> |
29 | | #include <sstream> |
30 | | #include <string> |
31 | | |
32 | | |
33 | | namespace rocksdb { |
34 | | |
35 | | |
36 | | EventLoggerStream::EventLoggerStream(Logger* logger) |
37 | 49.2k | : logger_(logger), log_buffer_(nullptr), json_writer_(nullptr) {} |
38 | | |
39 | | EventLoggerStream::EventLoggerStream(LogBuffer* log_buffer) |
40 | 48.0k | : logger_(nullptr), log_buffer_(log_buffer), json_writer_(nullptr) {} |
41 | | |
42 | 97.2k | EventLoggerStream::~EventLoggerStream() { |
43 | 97.2k | if (json_writer_) { |
44 | 97.2k | json_writer_->EndObject(); |
45 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
46 | | printf("%s\n", json_writer_->Get().c_str()); |
47 | | #else |
48 | 97.2k | if (logger_) { |
49 | 49.2k | EventLogger::Log(logger_, *json_writer_); |
50 | 48.0k | } else if (log_buffer_) { |
51 | 48.0k | EventLogger::LogToBuffer(log_buffer_, *json_writer_); |
52 | 48.0k | } |
53 | 97.2k | #endif |
54 | 97.2k | delete json_writer_; |
55 | 97.2k | } |
56 | 97.2k | } |
57 | | |
58 | 97.4k | void EventLogger::Log(const JSONWriter& jwriter) { |
59 | 97.4k | Log(logger_, jwriter); |
60 | 97.4k | } |
61 | | |
62 | 146k | void EventLogger::Log(Logger* logger, const JSONWriter& jwriter) { |
63 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
64 | | printf("%s\n", jwriter.Get().c_str()); |
65 | | #else |
66 | 146k | rocksdb::RLOG(logger, "%s %s", Prefix(), jwriter.Get().c_str()); |
67 | 146k | #endif |
68 | 146k | } |
69 | | |
70 | | void EventLogger::LogToBuffer( |
71 | 48.0k | LogBuffer* log_buffer, const JSONWriter& jwriter) { |
72 | | #ifdef ROCKSDB_PRINT_EVENTS_TO_STDOUT |
73 | | printf("%s\n", jwriter.Get().c_str()); |
74 | | #else |
75 | 48.0k | assert(log_buffer); |
76 | 48.0k | rocksdb::LOG_TO_BUFFER(log_buffer, "%s %s", Prefix(), jwriter.Get().c_str()); |
77 | 48.0k | #endif |
78 | 48.0k | } |
79 | | |
80 | | } // namespace rocksdb |