Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
logs.h
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_LIBS_LOGS_LOGS_H__
22#define __ANTARES_LIBS_LOGS_LOGS_H__
23
24#include <yuni/yuni.h>
25#include "yuni/core/logs/decorators/message.h"
26#include "yuni/core/logs/decorators/time.h"
27#include "yuni/core/logs/decorators/verbositylevel.h"
28#include "yuni/core/logs/handler/file.h"
29#include "yuni/core/logs/handler/stdcout.h"
30#include "yuni/core/logs/logs.h"
31
38#define LOG_APPLICATION_NAME "antares"
40#define LOG_APPLICATION_VENDOR "RTE"
41
43#define LOG_UI "[UI] "
44
46#define LOG_PROGRESSION "[UI] progression: "
47
49#define LOG_UI_PROGRESSION_MAP "[UI] Progression map: "
50
52#define LOG_UI_DISPLAY_MESSAGES_ON "[UI] Display messages: On"
54#define LOG_UI_DISPLAY_MESSAGES_OFF "[UI] Display messages: Off"
56#define LOG_UI_HIDE_PROGRESSBAR "[UI] Progression: Off"
58#define LOG_UI_SOLVER_DONE "[UI] Quitting the solver gracefully"
59
60#ifdef __cplusplus
61// This section is only dedicated to includes from a c++ file
62#include <yuni/core/logs.h>
63#include <yuni/core/logs/decorators/applicationname.h>
64#include <yuni/core/logs/handler/callback.h>
65
66namespace Antares
67{
69using LoggingHandlers = Yuni::Logs::StdCout< // For writing to the standard output
70 Yuni::Logs::File< // For writing into a log file
71 Yuni::Logs::Callback<> // Callback
72 >>;
73
75using LoggingDecorators = Yuni::Logs::Time< // Date/Time when the entry log is added
76 Yuni::Logs::ApplicationName< // Name of the current running application
77 Yuni::Logs::VerbosityLevel< // Verbosity level (info, warning...)
78 Yuni::Logs::Message<> // The real message
79 >>>;
80
82extern Yuni::Logs::Logger<LoggingHandlers, LoggingDecorators> logs;
83
84} // namespace Antares
85
86#endif
87
88#ifdef __cplusplus
89extern "C"
90{
91#endif
92
96enum LogLevel
97{
98 logUnknown = 0,
99 logProgress, /* not really a real log level */
100 logFatal,
101 logError,
102 logWarning,
103 logNotice,
104 logInfo,
105 logDebug
106};
107
115int LogCompatibility(const char format[], ...);
116
120void LogDisplayErrorInfos(uint errors, uint warnings, const char* message, bool printError = true);
121
122#ifdef __cplusplus
123}
124#endif
125
126#endif /* __ANTARES_LIBS_LOGS_LOGS_H__ */
int LogCompatibility(const char format[],...)
Generate a compatibility notice.
Definition logs.cpp:34