ifw-fgf 2.0.0
 
Loading...
Searching...
No Matches
logger.hpp
Go to the documentation of this file.
1
8
9#pragma once
10
11#include <string>
12#include <cstdarg>
13
14//#include <open62541/server.h>
15#if __has_include(<open62541.h>)
16 #include <open62541.h>
17#else
18 #include <open62541/plugin/log_stdout.h>
19 #include <open62541/server.h>
20 #include <open62541/server_config_default.h>
21#endif
22
23#include <log4cplus/loggingmacros.h>
24#include <log4cplus/logger.h>
25
26#include <ifw/fnd/defs/base.hpp>
27
28namespace ifw::fgf::common {
29
30 extern UA_Logger s_custom_logger;
31
34 const std::string& LogPropertiesName(const std::string& log_properties = {});
35
37 const std::string& AppLogName(const std::string& logger_name = {});
38
40 void ConfigureLogging();
41
43 log4cplus::Logger& GetRootLogger();
44 log4cplus::Logger& GetAppLogger();
45
46 inline log4cplus::Logger& Logger() {
47 return GetAppLogger();
48 }
49
51 std::string FindFile(const std::string& resource_filename);
52
54 void CustomOpen62541Log(void* log_context,
55 UA_LogLevel level,
56 UA_LogCategory category,
57 const char* msg,
58 va_list args);
59
61 inline UA_Logger make_ua_logger(void* context = nullptr,
62 UA_LogLevel min = UA_LOGLEVEL_INFO) {
63 UA_Logger L{}; // zero-init future-proofs optional fields
64 L.log = &CustomOpen62541Log;
65 L.context = context;
66 //L.logLevel = min;
67 return L;
68 }
69
70} // namespace ifw::fgf::common
Definition binarySemaphore.hpp:45
void ConfigureLogging()
One-time logging configuration (idempotent; safe to call many times).
Definition logger.cpp:109
void CustomOpen62541Log(void *log_context, UA_LogLevel level, UA_LogCategory category, const char *msg, va_list args)
open62541 logging callback (attach via cfg->logger.log = &CustomOpen62541Log).
Definition logger.cpp:76
log4cplus::Logger & GetRootLogger()
Root/application loggers (configured on first use).
Definition logger.cpp:125
const std::string & AppLogName(const std::string &logger_name={})
Get/optionally set the application logger name (e.g. "fgfapp").
Definition logger.cpp:40
std::string FindFile(const std::string &resource_filename)
Resolve a resource file (e.g. properties) using your search rules.
Definition logger.cpp:138
UA_Logger make_ua_logger(void *context=nullptr, UA_LogLevel min=UA_LOGLEVEL_INFO)
Convenience: build a UA_Logger value you can assign to cfg->logger.
Definition logger.hpp:54
log4cplus::Logger & Logger()
Definition logger.hpp:46
UA_Logger s_custom_logger
Definition logger.cpp:28
log4cplus::Logger & GetAppLogger()
Definition logger.cpp:131
const std::string & LogPropertiesName(const std::string &log_properties={})
Definition logger.cpp:31