MongoDB C++ Driver  legacy-1.1.2
message_event_utf8_encoder.h
1 /* Copyright 2013 10gen Inc.
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #pragma once
17 
18 #include <iosfwd>
19 
20 #include "mongo/logger/encoder.h"
21 #include "mongo/logger/message_event.h"
22 #include "mongo/util/time_support.h"
23 
24 namespace mongo {
25 namespace logger {
26 
30 class MessageEventDetailsEncoder : public Encoder<MessageEventEphemeral> {
31 public:
32  typedef void (*DateFormatter)(std::ostream&, Date_t);
33 
40  static void setDateFormatter(DateFormatter dateFormatter);
41 
47  static DateFormatter getDateFormatter();
48 
49  virtual ~MessageEventDetailsEncoder();
50  virtual std::ostream& encode(const MessageEventEphemeral& event, std::ostream& os);
51 };
52 
56 class MessageEventWithContextEncoder : public Encoder<MessageEventEphemeral> {
57 public:
59  virtual std::ostream& encode(const MessageEventEphemeral& event, std::ostream& os);
60 };
61 
62 
66 class MessageEventUnadornedEncoder : public Encoder<MessageEventEphemeral> {
67 public:
69  virtual std::ostream& encode(const MessageEventEphemeral& event, std::ostream& os);
70 };
71 
72 } // namespace logger
73 } // namespace mongo
static DateFormatter getDateFormatter()
Gets the date formatter function in use by instances of MessageEventDetailsEncoder.
Encoder that generates log messages suitable for syslog.
Definition: message_event_utf8_encoder.h:56
Utility functions for parsing numbers from strings.
Definition: compare_numbers.h:20
Free form text log message object that does not own the storage behind its message and contextName...
Definition: message_event.h:33
Definition: time_support.h:39
Encoder that writes log messages of the style that MongoDB writes to console and files.
Definition: message_event_utf8_encoder.h:30
Encoder that generates log messages containing only the raw text of the message.
Definition: message_event_utf8_encoder.h:66
Interface for objects that encode Events to std::ostreams.
Definition: encoder.h:30
static void setDateFormatter(DateFormatter dateFormatter)
Sets the date formatter function for all instances of MessageEventDetailsEncoder. ...