From ea1947ffcc606d757357398b24e74a3f4ecefa07 Mon Sep 17 00:00:00 2001 From: neonloop Date: Wed, 20 Oct 2021 14:54:27 +0000 Subject: Initial commit from steward-fu release --- 3rdparty/log/log.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 3rdparty/log/log.h (limited to '3rdparty/log/log.h') diff --git a/3rdparty/log/log.h b/3rdparty/log/log.h new file mode 100644 index 0000000..046c345 --- /dev/null +++ b/3rdparty/log/log.h @@ -0,0 +1,110 @@ +/* ******************************************** */ +/* File Name: log.h */ +/* Author: (C) 2007-2009 - Juan José Ponteprino */ +/* Description: Loggin API Headers */ +/* License: This code is licenced as LGPL */ +/* ******************************************** */ + +#ifndef _LOG_H +#define _LOG_H + +#include + +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* Core */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ + +#define LOG_INIT_INTERNAL_BUFFER_SIZE 16384 + +enum { + LOG_PRIO_EMERGENCY = 0 , /* el sistema está inutilizable */ + LOG_PRIO_ALERT , /* debe tomarse una acción correctora inmediatamente */ + LOG_PRIO_CRITICAL , /* condiciones críticas */ + LOG_PRIO_ERROR , /* condiciones de error */ + LOG_PRIO_WARNNING , /* condiciones de advertencia */ + LOG_PRIO_NOTICE , /* condición normal, pero significativa */ + LOG_PRIO_INFO , /* mensaje informativo */ + LOG_PRIO_DEBUG , /* mensaje del nivel de depuración */ + LOG_PRIO_NODEF , /* No definido */ + LOG_PRIO_MAX = LOG_PRIO_NODEF /* valor maximo permitido ( - 1 ) */ +}; + +typedef struct +{ + void * privData; /* Internal Use */ + + char * internalBuffer; + + void * ( * log_open )( char * name, int flags ); + void ( * log_close )( void * privData ); + void ( * log_write )( void * privData, int priority, char * message ); + void ( * log_control )( void * privData, long kid, char * args ); +} log_t; + +/* ---------------------------------------------------- */ +/* Control format */ +/* -------------- */ +/* 0xBBUUUUUU */ +/* BB = Internal backend id ( 0xff - core control ) */ +/* UUUUUU = User data */ +/* ---------------------------------------------------- */ + +#define LOG_SYSTEM_CTRL 0xFF000000 + +#define LOG_LEVEL 0xFF000001 + +/* ---------------------------------------------------- */ + +int log_open( log_t * backend, char * name, int flags ); +void log_close( log_t * backend ); +void log_write( log_t * backend, int priority, char * format, ... ); +void log_control( log_t * backend, long kid, char * args ); +FILE * log_get_handle( log_t * backend ); + +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* Default backend */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ +/* ---------------------------------------------------- */ + +/* controls keyword id for file backend */ + +#define LOG_FILE_ROLL_NOW 0x00000001 +#define LOG_FILE_GET_FD 0x00000002 + +/* flags for file backend */ + +#define LOG_FILE_ROLL_SIZE_MASK 0x000007FF /* Max is 2047MB, 0 is disable size roll */ +#define LOG_FILE_ROLL_DAY 0x00001000 +#define LOG_FILE_DONT_FLUSH 0x00002000 + +#define LOG_FILE_DISPLAY_FNAME 0x00010000 + +/* file backend internal struct */ + +typedef struct +{ + char * fullpathname; + char * filename; + FILE * handle; + int flags; + struct tm lastTime; +} log_be_file_t; + +/* file backend functions */ + +log_t * log_file_be_create(); +void * log_file_open( char * name, int flags ); +void log_file_close( void * privData ); +void log_file_write( void * privData, int priority, char * message ); +void log_file_control( void * privData, long kid, char * args ); + +/* ---------------------------------------------------- */ + +#endif -- cgit v1.2.3