rpm  4.13.0
Macros | Typedefs | Enumerations | Functions
rpmlog.h File Reference

Yet Another syslog(3) API clone. More...

#include <stdarg.h>
#include <stdio.h>
#include <rpm/rpmutil.h>
Include dependency graph for rpmlog.h:

Go to the source code of this file.

Macros

#define RPMLOG_PRIMASK   0x07 /* mask to extract priority part (internal) */
 
#define RPMLOG_PRI(p)   ((p) & RPMLOG_PRIMASK)
 
#define RPMLOG_MAKEPRI(fac, pri)   ((((unsigned)(fac)) << 3) | (pri))
 
#define RPMLOG_NFACILITIES   24
 
#define RPMLOG_FACMASK   0x03f8
 
#define RPMLOG_FAC(p)   (((p) & RPMLOG_FACMASK) >> 3)
 
#define RPMLOG_MASK(pri)   (1 << ((unsigned)(pri)))
 
#define RPMLOG_UPTO(pri)   ((1 << (((unsigned)(pri))+1)) - 1)
 
#define RPMLOG_PID   0x01
 
#define RPMLOG_CONS   0x02
 
#define RPMLOG_ODELAY   0x04
 
#define RPMLOG_NDELAY   0x08
 
#define RPMLOG_NOWAIT   0x10
 
#define RPMLOG_PERROR   0x20
 
#define RPMLOG_DEFAULT   0x01
 
#define RPMLOG_EXIT   0x02
 
#define rpmSetVerbosity(_lvl)   ((void)rpmlogSetMask( RPMLOG_UPTO( RPMLOG_PRI(_lvl))))
 
#define rpmIncreaseVerbosity()   ((void)rpmlogSetMask(((((unsigned)(rpmlogSetMask(0) & 0xff)) << 1) | 1)))
 
#define rpmDecreaseVerbosity()   ((void)rpmlogSetMask((((int)(rpmlogSetMask(0) & 0xff)) >> 1)))
 
#define rpmIsNormal()   (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_NOTICE ))
 
#define rpmIsVerbose()   (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_INFO ))
 
#define rpmIsDebug()   (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_DEBUG ))
 

Typedefs

typedef enum rpmlogLvl_e rpmlogLvl
 RPM Log levels. More...
 
typedef enum rpmlogFac_e rpmlogFac
 facility codes More...
 
typedef struct rpmlogRec_s * rpmlogRec
 
typedef void * rpmlogCallbackData
 
typedef int(* rpmlogCallback) (rpmlogRec rec, rpmlogCallbackData data)
 

Enumerations

enum  rpmlogLvl_e {
  RPMLOG_EMERG = 0, RPMLOG_ALERT = 1, RPMLOG_CRIT = 2, RPMLOG_ERR = 3,
  RPMLOG_WARNING = 4, RPMLOG_NOTICE = 5, RPMLOG_INFO = 6, RPMLOG_DEBUG = 7
}
 RPM Log levels. More...
 
enum  rpmlogFac_e {
  RPMLOG_KERN = (0<<3), RPMLOG_USER = (1<<3), RPMLOG_MAIL = (2<<3), RPMLOG_DAEMON = (3<<3),
  RPMLOG_AUTH = (4<<3), RPMLOG_SYSLOG = (5<<3), RPMLOG_LPR = (6<<3), RPMLOG_NEWS = (7<<3),
  RPMLOG_UUCP = (8<<3), RPMLOG_CRON = (9<<3), RPMLOG_AUTHPRIV = (10<<3), RPMLOG_FTP = (11<<3),
  RPMLOG_LOCAL0 = (16<<3), RPMLOG_LOCAL1 = (17<<3), RPMLOG_LOCAL2 = (18<<3), RPMLOG_LOCAL3 = (19<<3),
  RPMLOG_LOCAL4 = (20<<3), RPMLOG_LOCAL5 = (21<<3), RPMLOG_LOCAL6 = (22<<3), RPMLOG_LOCAL7 = (23<<3),
  RPMLOG_ERRMSG = (((unsigned)( 24 +0))<<3)
}
 facility codes More...
 

Functions

const char * rpmlogRecMessage (rpmlogRec rec)
 Retrieve log message string from rpmlog record. More...
 
rpmlogLvl rpmlogRecPriority (rpmlogRec rec)
 Retrieve log priority from rpmlog record. More...
 
int rpmlogGetNrecs (void)
 Return number of rpmError() ressages. More...
 
void rpmlogPrint (FILE *f)
 Print all rpmError() messages. More...
 
void rpmlogClose (void)
 Close desriptor used to write to system logger. More...
 
void rpmlogOpen (const char *ident, int option, int facility)
 Open connection to system logger. More...
 
int rpmlogSetMask (int mask)
 Set the log mask level. More...
 
void rpmlog (int code, const char *fmt,...) RPM_GNUC_PRINTF(2
 Generate a log message using FMT string and option arguments. More...
 
void const char * rpmlogMessage (void)
 Return text of last rpmError() message. More...
 
int rpmlogCode (void)
 Return error code from last rpmError() message. More...
 
const char * rpmlogLevelPrefix (rpmlogLvl pri)
 Return translated prefix string (if any) given log level. More...
 
rpmlogCallback rpmlogSetCallback (rpmlogCallback cb, rpmlogCallbackData data)
 Set rpmlog callback function. More...
 
FILE * rpmlogSetFile (FILE *fp)
 Set rpmlog file handle. More...
 

Detailed Description

Yet Another syslog(3) API clone.

Used to unify rpmError() and rpmMessage() interfaces in rpm.

Definition in file rpmlog.h.

Macro Definition Documentation

§ rpmDecreaseVerbosity

#define rpmDecreaseVerbosity ( )    ((void)rpmlogSetMask((((int)(rpmlogSetMask(0) & 0xff)) >> 1)))

Definition at line 268 of file rpmlog.h.

§ rpmIncreaseVerbosity

#define rpmIncreaseVerbosity ( )    ((void)rpmlogSetMask(((((unsigned)(rpmlogSetMask(0) & 0xff)) << 1) | 1)))

Definition at line 266 of file rpmlog.h.

§ rpmIsDebug

#define rpmIsDebug ( )    (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_DEBUG ))

Definition at line 274 of file rpmlog.h.

§ rpmIsNormal

#define rpmIsNormal ( )    (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_NOTICE ))

Definition at line 270 of file rpmlog.h.

§ rpmIsVerbose

#define rpmIsVerbose ( )    (rpmlogSetMask(0) >= RPMLOG_MASK( RPMLOG_INFO ))

Definition at line 272 of file rpmlog.h.

Referenced by main(), and printUsage().

§ RPMLOG_CONS

#define RPMLOG_CONS   0x02

log on the console if errors in sending

Definition at line 149 of file rpmlog.h.

§ RPMLOG_DEFAULT

#define RPMLOG_DEFAULT   0x01

perform default logging

Definition at line 158 of file rpmlog.h.

§ RPMLOG_EXIT

#define RPMLOG_EXIT   0x02

exit after logging

Definition at line 159 of file rpmlog.h.

§ RPMLOG_FAC

#define RPMLOG_FAC (   p)    (((p) & RPMLOG_FACMASK) >> 3)

Definition at line 104 of file rpmlog.h.

§ RPMLOG_FACMASK

#define RPMLOG_FACMASK   0x03f8

mask to extract facility part

Definition at line 103 of file rpmlog.h.

§ RPMLOG_MAKEPRI

#define RPMLOG_MAKEPRI (   fac,
  pri 
)    ((((unsigned)(fac)) << 3) | (pri))

Definition at line 43 of file rpmlog.h.

§ RPMLOG_MASK

#define RPMLOG_MASK (   pri)    (1 << ((unsigned)(pri)))

mask for one priority

Definition at line 139 of file rpmlog.h.

§ RPMLOG_NDELAY

#define RPMLOG_NDELAY   0x08

don't delay open

Definition at line 151 of file rpmlog.h.

§ RPMLOG_NFACILITIES

#define RPMLOG_NFACILITIES   24

current number of facilities

Definition at line 99 of file rpmlog.h.

§ RPMLOG_NOWAIT

#define RPMLOG_NOWAIT   0x10

don't wait for console forks: DEPRECATED

Definition at line 152 of file rpmlog.h.

§ RPMLOG_ODELAY

#define RPMLOG_ODELAY   0x04

delay open until first syslog() (default)

Definition at line 150 of file rpmlog.h.

§ RPMLOG_PERROR

#define RPMLOG_PERROR   0x20

log to stderr as well

Definition at line 153 of file rpmlog.h.

§ RPMLOG_PID

#define RPMLOG_PID   0x01

log the pid with each message

Definition at line 148 of file rpmlog.h.

§ RPMLOG_PRI

#define RPMLOG_PRI (   p)    ((p) & RPMLOG_PRIMASK)

Definition at line 42 of file rpmlog.h.

§ RPMLOG_PRIMASK

#define RPMLOG_PRIMASK   0x07 /* mask to extract priority part (internal) */

Definition at line 40 of file rpmlog.h.

§ RPMLOG_UPTO

#define RPMLOG_UPTO (   pri)    ((1 << (((unsigned)(pri))+1)) - 1)

all priorities through pri

Definition at line 140 of file rpmlog.h.

§ rpmSetVerbosity

#define rpmSetVerbosity (   _lvl)    ((void)rpmlogSetMask( RPMLOG_UPTO( RPMLOG_PRI(_lvl))))

Definition at line 264 of file rpmlog.h.

Referenced by main().

Typedef Documentation

§ rpmlogCallback

typedef int(* rpmlogCallback) (rpmlogRec rec, rpmlogCallbackData data)
Parameters
recrpmlog record
dataprivate callback data
Returns
flags to define further behavior: RPMLOG_DEFAULT to perform default logging, RPMLOG_EXIT to exit after processing, 0 to return after callback

Definition at line 189 of file rpmlog.h.

§ rpmlogCallbackData

typedef void* rpmlogCallbackData

Definition at line 179 of file rpmlog.h.

§ rpmlogFac

typedef enum rpmlogFac_e rpmlogFac

facility codes

§ rpmlogLvl

typedef enum rpmlogLvl_e rpmlogLvl

RPM Log levels.

priorities/facilities are encoded into a single 32-bit quantity, where the bottom 3 bits are the priority (0-7) and the top 28 bits are the facility (0-big number). Both the priorities and the facilities map roughly one-to-one to strings in the syslogd(8) source code. This mapping is included in this file.

priorities (these are ordered)

§ rpmlogRec

typedef struct rpmlogRec_s* rpmlogRec

Definition at line 163 of file rpmlog.h.

Enumeration Type Documentation

§ rpmlogFac_e

facility codes

Enumerator
RPMLOG_KERN 

kernel messages

RPMLOG_USER 

random user-level messages

RPMLOG_MAIL 

mail system

RPMLOG_DAEMON 

system daemons

RPMLOG_AUTH 

security/authorization messages

RPMLOG_SYSLOG 

messages generated internally by syslogd

RPMLOG_LPR 

line printer subsystem

RPMLOG_NEWS 

network news subsystem

RPMLOG_UUCP 

UUCP subsystem

RPMLOG_CRON 

clock daemon

RPMLOG_AUTHPRIV 

security/authorization messages (private)

RPMLOG_FTP 

ftp daemon

RPMLOG_LOCAL0 

reserved for local use

RPMLOG_LOCAL1 

reserved for local use

RPMLOG_LOCAL2 

reserved for local use

RPMLOG_LOCAL3 

reserved for local use

RPMLOG_LOCAL4 

reserved for local use

RPMLOG_LOCAL5 

reserved for local use

RPMLOG_LOCAL6 

reserved for local use

RPMLOG_LOCAL7 

reserved for local use

RPMLOG_ERRMSG 

Definition at line 75 of file rpmlog.h.

§ rpmlogLvl_e

RPM Log levels.

priorities/facilities are encoded into a single 32-bit quantity, where the bottom 3 bits are the priority (0-7) and the top 28 bits are the facility (0-big number). Both the priorities and the facilities map roughly one-to-one to strings in the syslogd(8) source code. This mapping is included in this file.

priorities (these are ordered)

Enumerator
RPMLOG_EMERG 

system is unusable

RPMLOG_ALERT 

action must be taken immediately

RPMLOG_CRIT 

critical conditions

RPMLOG_ERR 

error conditions

RPMLOG_WARNING 

warning conditions

RPMLOG_NOTICE 

normal but significant condition

RPMLOG_INFO 

informational

RPMLOG_DEBUG 

debug-level messages

Definition at line 29 of file rpmlog.h.

Function Documentation

§ rpmlog()

void rpmlog ( int  code,
const char *  fmt,
  ... 
)

Generate a log message using FMT string and option arguments.

Referenced by buildArgCallback(), buildForTarget(), checkSpec(), getTarSpec(), and isSpecFile().

§ rpmlogClose()

void rpmlogClose ( void  )

Close desriptor used to write to system logger.

Todo:
Implement.

§ rpmlogCode()

int rpmlogCode ( void  )

Return error code from last rpmError() message.

Deprecated:
Perl-RPM needs, what's really needed is predictable, non-i18n encumbered, error text that can be retrieved through rpmlogMessage() and parsed IMHO.
Returns
code from last message

§ rpmlogGetNrecs()

int rpmlogGetNrecs ( void  )

Return number of rpmError() ressages.

Returns
number of messages

§ rpmlogLevelPrefix()

const char* rpmlogLevelPrefix ( rpmlogLvl  pri)

Return translated prefix string (if any) given log level.

Parameters
prilog priority
Returns
message prefix (or "" for none)

§ rpmlogMessage()

void const char* rpmlogMessage ( void  )

Return text of last rpmError() message.

Returns
text of last message

§ rpmlogOpen()

void rpmlogOpen ( const char *  ident,
int  option,
int  facility 
)

Open connection to system logger.

Todo:
Implement.

§ rpmlogPrint()

void rpmlogPrint ( FILE *  f)

Print all rpmError() messages.

Parameters
ffile handle (NULL uses stderr)

§ rpmlogRecMessage()

const char* rpmlogRecMessage ( rpmlogRec  rec)

Retrieve log message string from rpmlog record.

Parameters
recrpmlog record
Returns
log message

§ rpmlogRecPriority()

rpmlogLvl rpmlogRecPriority ( rpmlogRec  rec)

Retrieve log priority from rpmlog record.

Parameters
recrpmlog record
Returns
log priority

§ rpmlogSetCallback()

rpmlogCallback rpmlogSetCallback ( rpmlogCallback  cb,
rpmlogCallbackData  data 
)

Set rpmlog callback function.

Parameters
cbrpmlog callback function
datacallback private (user) data
Returns
previous rpmlog callback function

§ rpmlogSetFile()

FILE* rpmlogSetFile ( FILE *  fp)

Set rpmlog file handle.

Parameters
fprpmlog file handle (NULL uses stdout/stderr)
Returns
previous rpmlog file handle

§ rpmlogSetMask()

int rpmlogSetMask ( int  mask)

Set the log mask level.

Parameters
masklog mask (0 is no operation)
Returns
previous log mask