ifw-fgf 2.0.0
 
Loading...
Searching...
No Matches
logger.hpp
Go to the documentation of this file.
1
8
9#pragma once
10#include <string>
11#include <cstdarg>
12
13//#include <open62541/server.h>
14#if __has_include(<open62541.h>)
15 #include <open62541.h>
16#else
17 #include <open62541/plugin/log_stdout.h>
18 #include <open62541/server.h>
19 #include <open62541/server_config_default.h>
20#endif
21
22#include <log4cplus/loggingmacros.h>
23#include <log4cplus/logger.h>
24
25namespace ifw::fgf::common {
26
27 extern UA_Logger s_custom_logger;
28
31 const std::string& LogPropertiesName(const std::string& log_properties = {});
32
34 const std::string& AppLogName(const std::string& logger_name = {});
35
37 void ConfigureLogging();
38
40 log4cplus::Logger& GetRootLogger();
41 log4cplus::Logger& GetAppLogger();
42
44 std::string FindFile(const std::string& resource_filename);
45
47 void CustomOpen62541Log(void* log_context,
48 UA_LogLevel level,
49 UA_LogCategory category,
50 const char* msg,
51 va_list args);
52
54 inline UA_Logger make_ua_logger(void* context = nullptr,
55 UA_LogLevel min = UA_LOGLEVEL_INFO) {
56 UA_Logger L{}; // zero-init future-proofs optional fields
57 L.log = &CustomOpen62541Log;
58 L.context = context;
59 //L.logLevel = min;
60 return L;
61 }
62
63} // 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
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