MongoDB C++ Driver  legacy-1.1.2
log_manager.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 <string>
19 
20 #include "mongo/base/disallow_copying.h"
21 #include "mongo/logger/component_message_log_domain.h"
22 #include "mongo/platform/unordered_map.h"
23 
24 namespace mongo {
25 namespace logger {
26 
32 class LogManager {
33  MONGO_DISALLOW_COPYING(LogManager);
34 
35 public:
36  LogManager();
37  ~LogManager();
38 
43  return &_globalDomain;
44  }
45 
49  MessageLogDomain* getNamedDomain(const std::string& name);
50 
51 private:
52  typedef unordered_map<std::string, MessageLogDomain*> DomainsByNameMap;
53 
54  DomainsByNameMap _domains;
55  ComponentMessageLogDomain _globalDomain;
56 };
57 
58 } // namespace logger
59 } // namespace mongo
Utility functions for parsing numbers from strings.
Definition: compare_numbers.h:20
ComponentMessageLogDomain * getGlobalDomain()
Gets the global domain for this manager.
Definition: log_manager.h:42
MessageLogDomain * getNamedDomain(const std::string &name)
Get the log domain with the given name, creating if needed.
Container for managing log domains.
Definition: log_manager.h:32
Logging domain for ephemeral messages with minimum severity.
Definition: component_message_log_domain.h:27
Logging domain for events of type E.
Definition: log_domain.h:50