/* /////////////////////////////////////////////////////////////////////////
 * 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)
{
Beispiel #5
0
#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 //////////////////////////// */