PLCnext API Documentation 25.0.2.69
Log.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Commons/Logging/LogLevel.hpp"
9
10namespace Arp::Base::Commons::Logging
11{
12
14class ARP_EXPORT Log
15{
16public: // construction
17 Log(void) = delete; // make this class pure static
18
19public: // Initialization
20 static void Initialize(const String& loggerName);
21
22public: // static Log operations
23 template<typename... Args> static void Trace(const char* format, const Args& ... args);
24 template<typename... Args> static void Debug(const char* format, const Args& ... args);
25 template<typename... Args> static void Info(const char* format, const Args& ... args);
26 template<typename... Args> static void Warning(const char* format, const Args& ... args);
27 template<typename... Args> static void Critical(const char* format, const Args& ... args);
28 template<typename... Args> static void Error(const char* format, const Args& ... args);
29 template<typename... Args> static void Fatal(const char* format, const Args& ... args);
30
31public: // static Log operations in printf format style
32 template<typename... Args> static void PrintTrace(const char* format, const Args& ... args);
33 template<typename... Args> static void PrintDebug(const char* format, const Args& ... args);
34 template<typename... Args> static void PrintInfo(const char* format, const Args& ... args);
35 template<typename... Args> static void PrintWarning(const char* format, const Args& ... args);
36 template<typename... Args> static void PrintCritical(const char* format, const Args& ... args);
37 template<typename... Args> static void PrintError(const char* format, const Args& ... args);
38 template<typename... Args> static void PrintFatal(const char* format, const Args& ... args);
39
40private: // static template methods
41 template<typename... Args> static void LogInternal(LogLevel severity, const char* format, const Args& ... args);
42 template<typename... Args> static void LogfInternal(LogLevel severity, const char* format, const Args& ... args);
43
44private: // static impl methods
45 static void LogInternal(LogLevel severity, String&& message);
46 static void LogInternal(LogLevel severity, const String& message);
47 static LogLevel GetLogLevel(void);
48};
49
50} // end of namespace Arp::Base::Commons::Logging
51
53// include inline generic operations of class Log
54#include "Arp/Base/Commons/Logging/Log.inl"
This pure static class provides static logging.
Definition: Log.hpp:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39