40 LIRC_DEBUG = LOG_DEBUG,
42 LIRC_NOTICE = LOG_NOTICE,
43 LIRC_WARNING = LOG_WARNING,
61#define LIRC_MAX_LOGLEVEL LIRC_TRACE2
64#define LIRC_MIN_LOGLEVEL LIRC_ERROR
67void perrorf(
const char* format, ...);
76extern char progname[128];
79#define DEFAULT_LOGLEVEL LIRC_INFO
83#define logmax(l) (l > LIRC_DEBUG ? LIRC_DEBUG : static_cast <loglevel_t>(l))
85#define logmax(l) (l > LIRC_DEBUG ? LIRC_DEBUG : l)
89#define log_perror_err(fmt, ...) \
90 { if ((logchannel & logged_channels) && LIRC_ERROR <= loglevel) \
91 { logperror(LIRC_ERROR, fmt, ##__VA_ARGS__); } }
94#define log_perror_warn(fmt, ...) \
95 { if ((logchannel & logged_channels) && LIRC_WARNING <= loglevel) \
96 { logperror(LIRC_WARNING, fmt, ##__VA_ARGS__); } }
99#define log_perror_debug(fmt, ...) \
100 { if ((logchannel & logged_channels) && LIRC_DEBUG <= loglevel) \
101 { logperror(LIRC_WARNING, fmt, ##__VA_ARGS__); } }
104#define log_error(fmt, ...) \
105 { if ((logchannel & logged_channels) && LIRC_ERROR <= loglevel) \
106 { logprintf(LIRC_ERROR, fmt, ##__VA_ARGS__); } }
109#define log_warn(fmt, ...) \
110 { if ((logchannel & logged_channels) && LIRC_WARNING <= loglevel) \
111 { logprintf(LIRC_WARNING, fmt, ##__VA_ARGS__); } }
114#define log_info(fmt, ...) \
115 { if ((logchannel & logged_channels) && LIRC_INFO <= loglevel) \
116 { logprintf(LIRC_INFO, fmt, ##__VA_ARGS__); } }
119#define log_notice(fmt, ...) \
120 { if ((logchannel & logged_channels) && LIRC_NOTICE <= loglevel) \
121 { logprintf(LIRC_NOTICE, fmt, ##__VA_ARGS__); } }
124#define log_debug(fmt, ...) \
125 { if ((logchannel & logged_channels) && LIRC_DEBUG <= loglevel) \
126 { logprintf(LIRC_DEBUG, fmt, ##__VA_ARGS__); } }
129#define log_trace(fmt, ...) \
130 { if ((logchannel & logged_channels) && LIRC_TRACE <= loglevel) \
131 { logprintf(LIRC_TRACE, fmt, ##__VA_ARGS__); } }
134#define log_trace1(fmt, ...) \
135 { if ((logchannel & logged_channels) && LIRC_TRACE1 <= loglevel) \
136 { logprintf(LIRC_TRACE1, fmt, ##__VA_ARGS__); } }
139#define log_trace2(fmt, ...) \
140 { if ((logchannel & logged_channels) && LIRC_TRACE2 <= loglevel) \
141 { logprintf(LIRC_TRACE2, fmt, ##__VA_ARGS__); } }
157#define lirc_log_is_enabled_for(level) (level <= loglevel)
169void logprintf(
loglevel_t prio,
const char* format_str, ...);
173int lirc_log_reopen(
void);
206void hexdump(
char* prefix,
unsigned char* buf,
int len);
209#define STRINGIFY(x) #x
212#define STR(x) STRINGIFY(x)
215#define chk_write(fd, buf, count) \
216 do_chk_write(fd, buf, count, STR(__FILE__) ":" STR(__LINE__))
220#define chk_read(fd, buf, count) \
221 do_chk_read(fd, buf, count, STR(__FILE__) ":" STR(__LINE__))
226do_chk_write(
int fd,
const void* buf,
size_t count,
const char* msg)
228 if (write(fd, buf, count) == -1)
235do_chk_read(
int fd,
void* buf,
size_t count,
const char* msg)
237 if (read(fd, buf, count) == -1)
loglevel_t loglevel
The actual loglevel.
loglevel_t
The defined loglevels.
int lirc_log_use_syslog(void)
Check if log is set up to use syslog or not.
void lirc_log_set_file(const char *s)
Set logfile.
void hexdump(char *prefix, unsigned char *buf, int len)
Print prefix + a hex dump of len bytes starting at *buf.
int lirc_log_setlevel(loglevel_t level)
Set the level.
int lirc_log_get_clientlog(const char *basename, char *buffer, ssize_t size)
Retrieve a client path for logging according to freedesktop specs.
logchannel_t logged_channels
The actual logchannel.
loglevel_t string2loglevel(const char *level)
Convert a string, either a number or 'info', 'trace1', error etc.
int lirc_log_open(const char *progname, int _nodaemon, loglevel_t level)
Open the log for upcoming logging.
void perrorf(const char *format,...)
Adds printf-style arguments to perror(3).
logchannel_t
Log channels used to filter messages.
int lirc_log_close(void)
Close the log previosly opened with lirc_log_open().
void logperror(loglevel_t prio, const char *format,...)
Log current kernel error with a given level.
loglevel_t lirc_log_defaultlevel(void)
Get the default level, from environment or hardcoded.