AnCH Framework 0.1
Another C++ Hack Framework
 
Loading...
Searching...
No Matches
mdc.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2012 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include <string>
23#include <map>
24
25namespace anch::logger {
26
28 extern const std::string MDC_THREAD_ID;
29
31 extern std::map<std::string,std::string> MDC_CONST;
32
43
44 // Attributes +
45 private:
47 std::map<std::string,std::string> _context;
48 // Attributes -
49
50 // Constructors +
51 public:
56
61
66 // Constructors -
67
68 // Destructors +
69 public:
74 // Destructors -
75
76 // Methods +
77 public:
84 void add(const std::string& key, const std::string& value) noexcept;
85
92 void put(const std::string& key, const std::string& value) noexcept;
93
99 void remove(const std::string& key) noexcept;
100
106 const std::map<std::string,std::string>& get() const noexcept;
107
111 void reset() noexcept;
112
113
119 void copy(const MapDiagnosticContext& other) noexcept;
120 // Methods -
121
122 };
123
125 extern thread_local MapDiagnosticContext MDC;
126
127}
128
129#include "logger/impl/mdc.hpp"
void put(const std::string &key, const std::string &value) noexcept
const std::map< std::string, std::string > & get() const noexcept
MapDiagnosticContext(const MapDiagnosticContext &)=delete
void copy(const MapDiagnosticContext &other) noexcept
void add(const std::string &key, const std::string &value) noexcept
void remove(const std::string &key) noexcept
MapDiagnosticContext(MapDiagnosticContext &&)=delete
Logger namespace.
Definition anchDateFormatter.hpp:27
const std::string MDC_THREAD_ID
std::map< std::string, std::string > MDC_CONST
thread_local MapDiagnosticContext MDC