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
12
13#pragma once
14#if __has_include("defs.h")
15#include "defs.h"
16#endif
17
18#include "safe_winsock.h"
19
20// facility codes 0 to 24 are defined in syslog.h
21#define LOG_USER (1 << 3)
22
31#define LOG_EMERG 0
32#define LOG_ALERT 1
33#define LOG_CRIT 2
34#define LOG_ERR 3
35#define LOG_WARNING 4
36#define LOG_NOTICE 5
37#define LOG_INFO 6
38#define LOG_DEBUG 7
40
48#define LOG_PRIMASK 0x7
49#define LOG_FACMASK 0x03f8
50#define LOG_MASK(pri) (1 << (pri))
51#define LOG_UPTO(pri) ((1 << ((pri) + 1)) - 1)
53#define LOG_MAKEPRI(fac, pri) ((fac) | (pri))
55
63/*
64 * LOG_ODELAY no longer does anything.
65 * LOG_NDELAY is the inverse of what it used to be.
66 */
67#define LOG_PID 0x01 /* log the pid with each message */
68#define LOG_CONS 0x02 /* log on the console if errors in sending */
69#define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */
70#define LOG_NDELAY 0x08 /* don't delay open */
71#define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */
72#define LOG_PERROR 0x20 /* log to stderr as well */
73
74// mlib stuff
75#define LOGOPT_PID 0x01
76#define LOGOPT_OUTDEBUG 0x02
77
78#define LOGOPT_NOUDP 0x40
79#define LOGOPT_FILE 0x80
81
82#define LOG_PORT 514 /* port number for logger (same as SYSLOG service) */
83
84#ifdef __cplusplus
85extern "C"
86{
87#endif
88
90 void closelog (void);
91
93 void openlog (const char* ident, int option = 0, int facility = LOG_USER);
94
96 int setlogmask (int mask);
97
99 int setlogopt (int opt);
100
102 void syslog (int facility_priority, const char* fmt, ...);
103
105 bool syslog_debug (const char* fmt, ...);
106
108 extern int log_defaultopt;
109
111 extern char log_servhostname[_MAX_PATH];
112
114 extern char log_fname[_MAX_PATH];
115
116#ifdef __cplusplus
117}
118#endif
void closelog(void)
Close connection to logger.
Definition log.cpp:235
void openlog(const char *ident, int option=0, int facility=LOG_USER)
Open connection to logger.
Definition log.cpp:158
int setlogmask(int mask)
Set the log mask level.
Definition log.cpp:402
void syslog(int facility_priority, const char *fmt,...)
Generate a log message using FMT string and option arguments.
Definition log.cpp:280
int setlogopt(int opt)
Set option flags.
Definition log.cpp:428
char log_fname[_MAX_PATH]
Log filename if LOGOPT_FILE flag is set.
Definition log.cpp:43
int log_defaultopt
Default log options - combination of LOGOPT_... flags.
Definition log.cpp:40
bool syslog_debug(const char *fmt,...)
Generate a log message at debug level using FMT string and option arguments.
Definition log.cpp:319
char log_servhostname[_MAX_PATH]
Destination host for UDP datagrams. Default is "localhost".
Definition log.cpp:42
#define LOG_USER
facility for random user-level messages
Definition log.h:21