MLIB
Loading...
Searching...
No Matches
log.h
Go to the documentation of this file.
1/*
2 Copyright (c) Mircea Neacsu (2014-2025) Licensed under MIT License.
3 This is part of MLIB project. See LICENSE file for full license terms.
4*/
5
6#pragma once
13#if __has_include("defs.h")
14#include "defs.h"
15#endif
16
17#include <winsock2.h>
18
19// facility codes 0 to 24 are defined in syslog.h
20#define LOG_USER (1 << 3)
21
30#define LOG_EMERG 0
31#define LOG_ALERT 1
32#define LOG_CRIT 2
33#define LOG_ERR 3
34#define LOG_WARNING 4
35#define LOG_NOTICE 5
36#define LOG_INFO 6
37#define LOG_DEBUG 7
39
47#define LOG_PRIMASK 0x7
48#define LOG_FACMASK 0x03f8
49#define LOG_MASK(pri) (1 << (pri))
50#define LOG_UPTO(pri) ((1 << ((pri) + 1)) - 1)
52#define LOG_MAKEPRI(fac, pri) ((fac) | (pri))
54
62/*
63 * LOG_ODELAY no longer does anything.
64 * LOG_NDELAY is the inverse of what it used to be.
65 */
66#define LOG_PID 0x01 /* log the pid with each message */
67#define LOG_CONS 0x02 /* log on the console if errors in sending */
68#define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */
69#define LOG_NDELAY 0x08 /* don't delay open */
70#define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */
71#define LOG_PERROR 0x20 /* log to stderr as well */
72
73// mlib stuff
74#define LOGOPT_PID 0x01
75#define LOGOPT_OUTDEBUG 0x02
76
77#define LOGOPT_NOUDP 0x40
78#define LOGOPT_FILE 0x80
80
81#define LOG_PORT 514 /* port number for logger (same as SYSLOG service) */
82
83#ifdef __cplusplus
84extern "C"
85{
86#endif
87
89 void closelog (void);
90
92 void openlog (const char* ident, int option = 0, int facility = LOG_USER);
93
95 int setlogmask (int mask);
96
98 int setlogopt (int opt);
99
101 void syslog (int facility_priority, const char* fmt, ...);
102
104 bool syslog_debug (const char* fmt, ...);
105
107 extern int log_defaultopt;
108
110 extern char log_servhostname[_MAX_PATH];
111
113 extern char log_fname[_MAX_PATH];
114
115#ifdef __cplusplus
116}
117#endif
void closelog(void)
Close connection to logger.
Definition log.cpp:239
void openlog(const char *ident, int option=0, int facility=LOG_USER)
Open connection to logger.
Definition log.cpp:162
int setlogmask(int mask)
Set the log mask level.
Definition log.cpp:406
void syslog(int facility_priority, const char *fmt,...)
Generate a log message using FMT string and option arguments.
Definition log.cpp:284
int setlogopt(int opt)
Set option flags.
Definition log.cpp:432
char log_fname[_MAX_PATH]
Log filename if LOGOPT_FILE flag is set.
Definition log.cpp:47
int log_defaultopt
Default log options - combination of LOGOPT_... flags.
Definition log.cpp:44
bool syslog_debug(const char *fmt,...)
Generate a log message at debug level using FMT string and option arguments.
Definition log.cpp:323
char log_servhostname[_MAX_PATH]
Destination host for UDP datagrams. Default is "localhost".
Definition log.cpp:46
#define LOG_USER
facility for random user-level messages
Definition log.h:20