LIRC libraries
LinuxInfraredRemoteControl
lirc_log.c File Reference

(2bf1f3f 2016-12-21 11:58:02 +0100)

Implements lirc_log.h. More...

#include <errno.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <time.h>
#include <pwd.h>
#include <unistd.h>
#include <limits.h>
#include <ctype.h>
#include <syslog.h>
#include "lirc/lirc_log.h"

Go to the source code of this file.

Macros

#define min(a, b)   (a < b ? a : b)
 
#define HOSTNAME_LEN   128
 

Functions

int lirc_log_use_syslog (void)
 Check if log is set up to use syslog or not. More...
 
void lirc_log_set_file (const char *s)
 Set logfile. More...
 
int lirc_log_open (const char *_progname, int _nodaemon, loglevel_t level)
 Open the log for upcoming logging. More...
 
int lirc_log_close (void)
 Close the log previosly opened with lirc_log_open(). More...
 
int lirc_log_reopen (void)
 
int lirc_log_setlevel (loglevel_t level)
 Set the level. More...
 
loglevel_t lirc_log_defaultlevel (void)
 Get the default level, from environment or hardcoded. More...
 
loglevel_t string2loglevel (const char *s)
 Convert a string, either a number or 'info', 'trace1', error etc. More...
 
void perrorf (const char *format,...)
 Adds printf-style arguments to perror(3). More...
 
void logprintf (loglevel_t prio, const char *format_str,...)
 Write a message to the log. More...
 
void logperror (loglevel_t prio, const char *fmt,...)
 Prints a description of the last error to the log. More...
 
int lirc_log_get_clientlog (const char *basename, char *buffer, ssize_t size)
 Retrieve a client path for logging according to freedesktop specs. More...
 
void hexdump (char *prefix, unsigned char *buf, int len)
 Print prefix + a hex dump of len bytes starting at *buf. More...
 

Variables

char hostname [HOSTNAME_LEN+1]
 
FILE * lf = NULL
 
loglevel_t loglevel = LIRC_NOLOG
 The actual loglevel. More...
 
logchannel_t logged_channels = LOG_ALL
 The actual logchannel. More...
 
const char * syslogident = "lircd-" VERSION
 
const char * logfile = "syslog"
 
char progname [128] = { '?', '\0' }
 

Detailed Description

Implements lirc_log.h.

Author
Ralph Metzler, Christoph Bartelmus

Definition in file lirc_log.c.

Function Documentation

void hexdump ( char *  prefix,
unsigned char *  buf,
int  len 
)

Print prefix + a hex dump of len bytes starting at *buf.

Definition at line 369 of file lirc_log.c.

int lirc_log_close ( void  )

Close the log previosly opened with lirc_log_open().

Definition at line 137 of file lirc_log.c.

loglevel_t lirc_log_defaultlevel ( void  )

Get the default level, from environment or hardcoded.

Definition at line 219 of file lirc_log.c.

int lirc_log_get_clientlog ( const char *  basename,
char *  buffer,
ssize_t  size 
)

Retrieve a client path for logging according to freedesktop specs.

Parameters
basenameBasename for the logfile.
buffBuffer to store result in.
sizeSize of buffer
Returns
0 if OK, otherwise -1
Examples:
irexec.cpp.

Definition at line 332 of file lirc_log.c.

int lirc_log_open ( const char *  progname,
int  _nodaemon,
loglevel_t  level 
)

Open the log for upcoming logging.

Parameters
prognameName of application, made available in global progname
nodaemonIf true, program runs in foreground and logging is on also on stdout.
levelThe lowest level of messages to actually be logged.
Returns
0 if OK, else positive error code.
Examples:
irexec.cpp.

Definition at line 95 of file lirc_log.c.

void lirc_log_set_file ( const char *  s)

Set logfile.

Either a regular path or the string 'syslog'; the latter does indeed use syslog(1) instead. Must be called before lirc_log_open().

Examples:
irexec.cpp.

Definition at line 84 of file lirc_log.c.

int lirc_log_setlevel ( loglevel_t  level)

Set the level.

Returns 1 if ok, 0 on errors.

Definition at line 179 of file lirc_log.c.

int lirc_log_use_syslog ( void  )

Check if log is set up to use syslog or not.

Definition at line 78 of file lirc_log.c.

void logperror ( loglevel_t  prio,
const char *  fmt,
  ... 
)

Prints a description of the last error to the log.

Log current kernel error with a given level.

Parameters
prioPriority of log request.
fmtprintf-style format string

Definition at line 310 of file lirc_log.c.

void logprintf ( loglevel_t  prio,
const char *  format_str,
  ... 
)

Write a message to the log.

Caller should use the log_ macros and not call this directly.

Parameters
prioPriority of log request
format_strFormat string in the usual C sense.
...Additional vararg parameters.

Definition at line 273 of file lirc_log.c.

void perrorf ( const char *  format,
  ... 
)

Adds printf-style arguments to perror(3).

Examples:
irsend.cpp.

Definition at line 254 of file lirc_log.c.

loglevel_t string2loglevel ( const char *  level)

Convert a string, either a number or 'info', 'trace1', error etc.

to a loglevel.

Examples:
irexec.cpp.

Definition at line 234 of file lirc_log.c.

Variable Documentation

logchannel_t logged_channels = LOG_ALL

The actual logchannel.

Should not be changed directly by external code.

Definition at line 49 of file lirc_log.c.

loglevel_t loglevel = LIRC_NOLOG

The actual loglevel.

Should not be changed directly by external code.

Definition at line 47 of file lirc_log.c.