LIRC libraries
LinuxInfraredRemoteControl
lirc_log.c File Reference

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)
 
void lirc_log_set_file (const char *s)
 
int lirc_log_open (const char *_progname, int _nodaemon, loglevel_t level)
 
int lirc_log_close (void)
 
int lirc_log_reopen (void)
 
int lirc_log_setlevel (loglevel_t level)
 
loglevel_t lirc_log_defaultlevel (void)
 
loglevel_t string2loglevel (const char *s)
 
void perrorf (const char *format,...)
 
void logprintf (loglevel_t prio, const char *format_str,...)
 
void logperror (loglevel_t prio, const char *fmt,...)
 
int lirc_log_get_clientlog (const char *basename, char *buffer, ssize_t size)
 
void hexdump (char *prefix, unsigned char *buf, int len)
 

Variables

char hostname [HOSTNAME_LEN+1]
 
FILE * lf = NULL
 
loglevel_t loglevel = LIRC_NOLOG
 
logchannel_t logged_channels = LOG_ALL
 
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

◆ hexdump()

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

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

Definition at line 377 of file lirc_log.c.

◆ lirc_log_close()

int lirc_log_close ( void  )

Close the log previosly opened with lirc_log_open().

Definition at line 136 of file lirc_log.c.

◆ lirc_log_defaultlevel()

loglevel_t lirc_log_defaultlevel ( void  )

Get the default level, from environment or hardcoded.

Definition at line 218 of file lirc_log.c.

◆ lirc_log_get_clientlog()

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 340 of file lirc_log.c.

◆ lirc_log_open()

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.

◆ lirc_log_set_file()

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.

◆ lirc_log_setlevel()

int lirc_log_setlevel ( loglevel_t  level)

Set the level. Returns 1 if ok, 0 on errors.

Definition at line 178 of file lirc_log.c.

◆ lirc_log_use_syslog()

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.

◆ logperror()

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

Prints a description of the last error to the log.

Parameters
prioPriority of log request.
fmtprintf-style format string

Definition at line 318 of file lirc_log.c.

◆ logprintf()

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 272 of file lirc_log.c.

◆ perrorf()

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

Adds printf-style arguments to perror(3).

Examples:
irsend.cpp.

Definition at line 253 of file lirc_log.c.

◆ string2loglevel()

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 233 of file lirc_log.c.

Variable Documentation

◆ logged_channels

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

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.