-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuserlog.h
94 lines (75 loc) · 2.96 KB
/
userlog.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#ifndef _LOG_H_
#define _LOG_H_
#include <syslog.h>
/******************************************************************************/
/* CONSTANTES */
/******************************************************************************/
// #define _TRAZA_
#ifdef _TRAZA_
#define USERLOG(prio, fmt, args...) userlog(prio, fmt, ##args)
#else
#define USERLOG(prio, fmt, args...)
#endif
/* Definidos en syslog.h -> */
/* LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG */
/* Macros: LOG_MASK(...), LOG_UPTO(...) */
#ifndef USERLOG_MSK_CONSOLE
#warning USERLOG_MSK_CONSOLE Default value LOG_DEBUG
#define USERLOG_MSK_CONSOLE LOG_DEBUG
#endif
#ifndef USERLOG_MSK_FILE
#warning USERLOG_MSK_FILE Default value LOG_NOTICE
#define USERLOG_MSK_FILE LOG_NOTICE
#endif
// File paths
#ifndef USERLOG_ENABLE_FILE
#define USERLOG_ENABLE_FILE "/log/trazas"
#endif
#ifndef USERLOG_PATH
#define USERLOG_PATH "/log/userlogs.log"
#endif
#ifndef USERLOG_PATH_OLD
#define USERLOG_PATH_OLD "/log/old/userlogs.log"
#endif
#ifndef CMDLOG_PATH
#define CMDLOG_PATH "/log/CMDlogs.log"
#endif
#ifndef NUM_CMD_FILE
#define NUM_CMD_FILE 1
#endif
// Tamano maximo del fichero de trazas (los ficheros pueden ser algo mayores para no truncar los mensajes)
#ifndef MAX_SIZE_LOG_FILE
#define MAX_SIZE_LOG_FILE 0x40000 // 256 kbytes
#endif
#ifndef MAX_SIZE_CMD_FILE
#define MAX_SIZE_CMD_FILE 0x80000 // 512 kbytes
#endif
typedef enum DEBUGMODES
{
silentM = 0,
normalM,
terminalM,
fileM,
ultraverboseM
} debugModes_t; // Para conmutar entre modos: debug pantalla, debug fichero o debug por ambos
/********************************************************************************/
/* VARIABLES GLOBALES */
/********************************************************************************/
/********************************************************************************/
/* FUNCIONES DEL MODULO */
/********************************************************************************/
///@brief Inicializa logs. Usar antes de userlog o logcmd
///@param mode Selecciona uno de los posibles modos de mostrar los mensajes. Se puede modificar en tiempo de vuelo enviando una senal sighup.
void initlog(debugModes_t mode);
///@brief Funcion para crear mensajes
///@param priority Definidos en syslog.h -> LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG
///@param format Formato de entrada similar a printf().
///@return Devuelve el numero de caracteres escritos
int userlog(unsigned int priority, const char *format, ...);
///@brief Funcion para crear mensajes de cmd recibido.
///@param datar Booleano para indicar si se quiere incluir la fecha o no.
///@param lf Booleano para indicar si se quiere anadir un retorno de linea tras el cmd.
///@param format Formato de entrada similar a printf().
///@return Devuelve el numero de caracteres escritos.
int logcmd(unsigned char datar, unsigned char lf, const char *format, ...);
#endif // _LOG_H_