/* ///////////////////////////////////////////////////////////////////////// * Globals */ extern "C" { const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("be.N.fail.test"); pan_fe_N_t PAN_FE_N_SEVERITY_CEILINGS[] = { { 0, PANTHEIOS_SEV_DEBUG } }; pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(1, pantheios_be_fail, PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE), PANTHEIOS_BE_N_STDFORM_ENTRY(2, pantheios_be_file, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(3, pantheios_be_fail, PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE), PANTHEIOS_BE_N_STDFORM_ENTRY(4, pantheios_be_fprintf, 0), PANTHEIOS_BE_N_TERMINATOR_ENTRY }; } // extern "C" /* ////////////////////////////////////////////////////////////////////// */ static int main_(int /* argc */, char ** /*argv*/) { pantheios::log_NOTICE(PSTR("a notice")); return EXIT_SUCCESS;
/* Define the stock front-end process identity, so that it links when using * fe.N, fe.simple, etc. */ const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("example.c.N"); pan_fe_N_t PAN_FE_N_SEVERITY_CEILINGS[] = { { 1, PANTHEIOS_SEV_NOTICE } /* Filters out everything below 'notice' */ , { 2, PANTHEIOS_SEV_DEBUG } /* Allows all severities */ , { 3, PANTHEIOS_SEV_ERROR } /* Allows only 'error', 'critical', 'alert', 'emergency' */ , { 0, PANTHEIOS_SEV_NOTICE } /* Terminates the array; sets the default ceiling to 'notice' */ }; pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(1, pantheios_be_file, 0) , PANTHEIOS_BE_N_STDFORM_ENTRY(2, pantheios_be_fprintf, 0) , PANTHEIOS_BE_N_STDFORM_ENTRY(3, pantheios_be_null, 0) #if defined(PLATFORMSTL_OS_IS_UNIX) , PANTHEIOS_BE_N_STDFORM_ENTRY(4, pantheios_be_syslog, 0) #elif defined(PLATFORMSTL_OS_IS_WINDOWS) , PANTHEIOS_BE_N_STDFORM_ENTRY(4, pantheios_be_WindowsSyslog, 0) #endif /* OS */ , PANTHEIOS_BE_N_STDFORM_ENTRY(5, pantheios_be_file, 0) , PANTHEIOS_BE_N_TERMINATOR_ENTRY }; /* ////////////////////////////////////////////////////////////////////// */ int main() {
} catch(...) { pantheios::logputs(pantheios::emergency, "Unhandled unknown error"); } return EXIT_FAILURE; } /* ///////////////////////////////////////////////////////////////////////// * Back-end configuration */ pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(WG_LOG_CONSOLE_ID, pantheios_be_console, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(WG_LOG_FILE_ID, pantheios_be_file, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(WG_LOG_FILE_ERROR_ID, pantheios_be_file, 0), PANTHEIOS_BE_N_TERMINATOR_ENTRY }; /* ///////////////////////////////////////////////////////////////////////// * Custom front-end */ PANTHEIOS_CALL(int) pantheios_fe_init( void*,void** ptoken) { *ptoken = NULL; return 0;
#define PSTR(x) PANTHEIOS_LITERAL_STRING(x) /* ///////////////////////////////////////////////////////////////////////// * Logging management */ enum { beid_Console = 1, beid_Syslog = 2 }; pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { #if defined(PLATFORMSTL_OS_IS_UNIX) PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_fprintf, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_syslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), #elif defined(PLATFORMSTL_OS_IS_WINDOWS) PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Console, pantheios_be_WindowsConsole, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(beid_Syslog, pantheios_be_WindowsSyslog, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), #else /* ? OS */ # error Platform not discriminated #endif /* OS */ PANTHEIOS_BE_N_TERMINATOR_ENTRY }; /* ////////////////////////////////////////////////////////////////////// */ static int main_(int argc, char** argv) {
#include "logging.h" #include "pantheios_be_zmq/pantheios_be_zmq.h" //extern const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[]; pan_fe_N_t PAN_FE_N_SEVERITY_CEILINGS[] = { {1, PANTHEIOS_SEV_DEBUG}, {2, PANTHEIOS_SEV_DEBUG}, {3, PANTHEIOS_SEV_ERROR}, {0, PANTHEIOS_SEV_DEBUG} }; pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(1, pantheios_be_fprintf, 0), PANTHEIOS_BE_N_STDFORM_ENTRY(2, pantheios_be_file, PANTHEIOS_BE_N_F_IGNORE_NONMATCHED_CUSTOM28_ID), PANTHEIOS_BE_N_STDFORM_ENTRY(3, pantheios_be_zmq, PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE), PANTHEIOS_BE_N_TERMINATOR_ENTRY }; int logging_init(const char* log_file_name) { try { pantheios_be_file_setFilePath(log_file_name); #ifdef DEBUG pantheios::log_DEBUG("pantheios logging_init()"); #endif return 1;
pan_fe_N_t PAN_FE_N_SEVERITY_CEILINGS[] = { #ifdef _DEBUG { beid_console, PANTHEIOS_SEV_NOTICE }, #else /* ? _DEBUG */ { beid_console, PANTHEIOS_SEV_NOTICE }, #endif /* _DEBUG */ { beid_file, PANTHEIOS_SEV_INFORMATIONAL }, PANTHEIOS_FE_N_TERMINATOR_ENTRY(PANTHEIOS_SEV_INFORMATIONAL) }; pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(beid_console, pantheios_be_console, PANTHEIOS_BE_N_F_IGNORE_NONMATCHED_CUSTOM28_ID), PANTHEIOS_BE_N_STDFORM_ENTRY(beid_file, pantheios_be_file, PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28), PANTHEIOS_BE_N_TERMINATOR_ENTRY }; } // extern "C" /* ////////////////////////////////////////////////////////////////////// */ static int main_(int /*argc*/, char** /*argv*/) { thread_handle_t threads[32]; pan::log_INFORMATIONAL(PSTR("main(): creating "), pan::integer(STLSOFT_NUM_ELEMENTS(threads)), PSTR(" threads"));
#include <platformstl/platformstl.h> #if defined(PLATFORMSTL_OS_IS_WINDOWS) # include <unixem/implicit_link.h> #endif /* operating system */ /* xCover Header Files */ #if defined(__FUNCTION__) && \ defined(__COUNTER__) # include <xcover/implicit_link.h> #endif /* ////////////////////////////////////////////////////////////////////// */ /* Pantheios Header Files */ #if defined(PLATFORMSTL_OS_IS_WINDOWS) # include <pantheios/backends/be.N.h> # include <pantheios/backends/bec.WindowsDebugger.h> # include <pantheios/backends/bec.WindowsSyslog.h> pan_be_N_t PAN_BE_N_BACKEND_LIST[] = { PANTHEIOS_BE_N_STDFORM_ENTRY(1, pantheios_be_WindowsDebugger, 0) , PANTHEIOS_BE_N_STDFORM_ENTRY(2, pantheios_be_WindowsSyslog, PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE) , PANTHEIOS_BE_N_TERMINATOR_ENTRY }; #endif /* operating system */ /* ///////////////////////////// end of file //////////////////////////// */