rpmlog.h File Reference
RPMIO.

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

`#include <stdarg.h>`
Include dependency graph for rpmlog.h:
This graph shows which files directly or indirectly include this file:

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
| Option flags for callback return value. More...
#define | RPMLOG_EXIT 0x02

## 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 * | rpmlogLevelPrefix (rpmlogLvl pri)
| Return translated prefix string (if any) given log level. More...
rpmlogCallback | rpmlogSetCallback (rpmlogCallback cb, rpmlogCallbackData data)
| Set rpmlog callback function. More...
void | rpmlogGetCallback (rpmlogCallback *cb, rpmlogCallbackData *data)
| Get rpmlog callback function and data. More...
int | rpmlogGetNrecs (void)
| Return number of messages. More...
const char * | rpmlogRecMessage (rpmlogRec rec)
| Retrieve log message string from rpmlog record. More...
rpmlogLvl | rpmlogRecPriority (rpmlogRec rec)
| Retrieve log priority from rpmlog record. 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,...)
| Generate a log message using FMT string and option arguments. More...
void | vrpmlog (unsigned code, const char *fmt, va_list ap)
| Same as _rpmlog with stdarg argument list. More...
static void | rpmlog (int code, const char *fmt,...)
const char * | rpmlogMessage (void)
| Return text of last rpmError() message. More...
int | rpmlogCode (void)
| Return error code from last rpmError() message. More...
FILE * | rpmlogSetFile (FILE *fp)
| Set rpmlog file handle. More...

## Detailed Description

Yet Another syslog(3) API clone.

Definition in file rpmlog.h.

## Macro Definition Documentation

#define RPMLOG_CONS 0x02

log on the console if errors in sending

Definition at line 145 of file rpmlog.h.

#define RPMLOG_DEFAULT 0x01

Option flags for callback return value.

perform default logging

Definition at line 173 of file rpmlog.h.

Referenced by vrpmlog().

#define RPMLOG_EXIT 0x02

exit after logging

Definition at line 174 of file rpmlog.h.

Referenced by rpmlogDefault(), and vrpmlog().

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

Definition at line 100 of file rpmlog.h.

Referenced by vrpmlog().

#define RPMLOG_FACMASK 0x03f8

mask to extract facility part

Definition at line 99 of file rpmlog.h.

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

Definition at line 37 of file rpmlog.h.

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

mask for one priority

Definition at line 135 of file rpmlog.h.

Referenced by doFoo(), rpmlog(), and vrpmlog().

#define RPMLOG_NDELAY 0x08

don't delay open

Definition at line 147 of file rpmlog.h.

#define RPMLOG_NFACILITIES 24

current number of facilities

Definition at line 94 of file rpmlog.h.

#define RPMLOG_NOWAIT 0x10

don't wait for console forks: DEPRECATED

Definition at line 148 of file rpmlog.h.

#define RPMLOG_ODELAY 0x04

delay open until first syslog() (default)

Definition at line 146 of file rpmlog.h.

#define RPMLOG_PERROR 0x20

log to stderr as well

Definition at line 149 of file rpmlog.h.

#define RPMLOG_PID 0x01

log the pid with each message

Definition at line 144 of file rpmlog.h.

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

Definition at line 36 of file rpmlog.h.

Referenced by rpmlog(), and vrpmlog().

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

Definition at line 34 of file rpmlog.h.

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

all priorities through pri

Definition at line 136 of file rpmlog.h.

## Typedef Documentation

typedef int(* rpmlogCallback)(rpmlogRec rec, rpmlogCallbackData data)

Parameters

  rec | rpmlog record
  data | private callback data

Returns
  flags to define further behavior: RPMLOG_DEFAULT to continue to default logger, RPMLOG_EXIT to exit after processing 0 to return after callback.

Definition at line 167 of file rpmlog.h.

typedef void* rpmlogCallbackData

Definition at line 157 of file rpmlog.h.

typedef enum rpmlogFac_e rpmlogFac

facility codes

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)

typedef struct rpmlogRec_s* rpmlogRec

Definition at line 153 of file rpmlog.h.

## Enumeration Type Documentation

enum 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 70 of file rpmlog.h.

enum 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 22 of file rpmlog.h.

## Function Documentation

void _rpmlog | ( | int | code,
|  | const char * | fmt,
|  |  | ...
| ) |  |

Generate a log message using FMT string and option arguments.

Note: inline'd to avoid debugging insturmentation overhead.

Definition at line 294 of file rpmlog.c.

References vrpmlog().

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

inline static

< mask for one priority

Definition at line 298 of file rpmlog.h.

References RPMLOG_MASK, RPMLOG_PRI, rpmlogSetMask(), and vrpmlog().

Referenced by _specQuery(), addChangelog(), addFile(), addFileToTagAux(), addMacro(), addSource(), buildHost(), buildSpec(), cacheStashLatest(), checkForDuplicates(), checkForRequired(), checkForValidArchitectures(), checkOwners(), checkUnpackagedFiles(), copyFile(), copyNextLineFromOFI(), cpio_copy(), cpio_doio(), createDir(), cvtdberr(), db3close(), db3open(), db_fini(), db_init(), dbiFindMatches(), dbiOpen(), dnlInitIterator(), doAddSubtract(), doDefine(), doFoo(), doIcon(), doLogical(), doMultiplyDivide(), doOutput(), doPatch(), doPatchMacro(), doPrimary(), doRelational(), doSetupMacro(), doUndefine(), doUntar(), expandMacro(), expandMacros(), fiIntersect(), findErases(), findPreambleTag(), flushBuffer(), freeArgs(), fsmMapAttrs(), fsmMkdirs(), fsmStage(), genCpioListAndHeader(), getFilesystemList(), getGidS(), getGname(), getGnameS(), getOutputFrom(), getUidS(), getUname(), getUnameS(), grabArgs(), handlePreambleTag(), headerCheck(), IDTXglob(), ignoreDep(), initGlobs(), installArgCallback(), iosmMapAttrs(), iosmMkdirs(), iosmStage(), isCompressed(), makeGPGSignature(), makeHDRSignature(), manageFile(), miFreeHeader(), mireRegcomp(), mireRegexec(), mireStudy(), packageBinaries(), parseBuildInstallClean(), parseDescription(), parseExpressionBoolean(), parseExpressionString(), parseFiles(), parseForAttr(), parseForConfig(), parseForDev(), parseForLang(), parseForSimple(), parseForVerify(), parseNoSource(), parsePreamble(), parsePrep(), parseRCPOT(), parseScript(), parseSpec(), pkgUnpackagedSubdirs(), prepFetch(), prepFetchVerbose(), printDeps(), printNewSpecfile(), printSize(), processBinaryFile(), processBinaryFiles(), processMetadataFile(), processPackageFiles(), processScriptFiles(), processSourceFiles(), psmWait(), queryHeader(), rdToken(), readFile(), readLine(), readLineFromOFI(), relocateFileList(), rpmCheckPassPhrase(), rpmcliImportPubkeys(), rpmcliInit(), rpmcliInstall(), rpmcliInstallProblems(), rpmcliInstallSuggests(), rpmcliSign(), rpmdbAdd(), rpmdbCheckSignals(), rpmdbCount(), rpmdbExportInfo(), rpmdbFindByFile(), rpmdbGrowIterator(), rpmdbMireApply(), rpmdbMoveDatabase(), rpmdbNew(), rpmdbRebuild(), rpmdbRemove(), rpmdsCompare(), rpmdsNotify(), rpmdsProblem(), rpmErase(), rpmfcApply(), rpmfcClassify(), rpmfcExpandRegexps(), rpmfcGenerateDependsHelper(), rpmfcMatchRegexps(), rpmfiDecideFate(), rpmGetFilesystemUsage(), rpmgiInitFilter(), rpmgiNext(), rpmgiOpen(), rpmgiWalkPathFilter(), rpmInitMacros(), rpmInstallSource(), rpmInstallSourcePackage(), rpmioAllArgCallback(), rpmioFreePool(), rpmioInit(), rpmioMkpath(), rpmioNewPool(), rpmmgBuffer(), rpmmgFile(), rpmmgNew(), rpmmiInit(), rpmmiNext(), rpmMkdirPath(), rpmpsmStage(), rpmQueryVerify(), rpmReadHeaders(), rpmReadPackageFile(), rpmReadPackageManifest(), rpmReSign(), rpmRollback(), rpmShowProgress(), rpmSingleHeaderFromFD(), rpmspecQuery(), rpmTempFile(), rpmts_Die(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), rpmtsAddUpgrades(), rpmtsCheck(), rpmtsEraseDebuginfo(), rpmtsFindPubkey(), rpmtsInitDSI(), rpmtsInitIterator(), rpmtsOpenDB(), rpmtsOpenSDB(), rpmtsOrder(), rpmtsRollback(), rpmtsRun(), rpmtsSolve(), rpmuuidMake(), rpmVerifySignatures(), rpmWriteHeaders(), runScript(), scpReset(), showQueryPackage(), skipFiles(), sql_busy_handler(), sql_byteswapped(), sql_cdel(), sql_cget(), sql_close(), sql_cput(), sql_initDB(), sql_open(), sql_stat(), tagValidate(), timeCheck(), urlConnect(), urlGetFile(), urlSplit(), verifyDependencies(), verifyHeader(), writeRPM(), wrSignature(), and zapRelation().

void rpmlogClose | ( | void |  | ) |

Close desriptor used to write to system logger.

Todo:
  Implement.

Definition at line 78 of file rpmlog.c.

References _free(), nrecs, and recs.

Referenced by rpmioClean().

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

Definition at line 35 of file rpmlog.c.

References nrecs, and recs.

void rpmlogGetCallback | ( | rpmlogCallback * | cb,
|  | rpmlogCallbackData * | data
| ) |  |

Get rpmlog callback function and data.

Parameters

  cb | pointer to rpmlog callback function
  data | pointer to callback private (user) data

Returns
  none

Definition at line 133 of file rpmlog.c.

References _rpmlogCallback, and _rpmlogCallbackData.

int rpmlogGetNrecs | ( | void |  | ) |

Return number of messages.

Returns
  number of messages

Definition at line 30 of file rpmlog.c.

References nrecs.

Referenced by buildSpec().

const char* rpmlogLevelPrefix | ( | rpmlogLvl | pri | ) |

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

Parameters

  pri | log priority

Returns
  message prefix (or "" for none)

Definition at line 197 of file rpmlog.c.

References rpmlogMsgPrefix.

Referenced by rpmlogDefault().

const char* rpmlogMessage | ( | void |  | ) |

Return text of last rpmError() message.

Returns
  text of last message

Definition at line 42 of file rpmlog.c.

References _, nrecs, and recs.

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

Open connection to system logger.

Todo:
  Implement.

Definition at line 93 of file rpmlog.c.

void rpmlogPrint | ( | FILE * | f | ) |

Print all rpmError() messages.

Parameters

  f | file handle (NULL uses stderr)

Definition at line 62 of file rpmlog.c.

References nrecs, and recs.

Referenced by buildSpec().

const char* rpmlogRecMessage | ( | rpmlogRec | rec | ) |

Retrieve log message string from rpmlog record.

Parameters

  rec | rpmlog record

Returns
  log message

Definition at line 49 of file rpmlog.c.

rpmlogLvl rpmlogRecPriority | ( | rpmlogRec | rec | ) |

Retrieve log priority from rpmlog record.

Parameters

  rec | rpmlog record

Returns
  log priority

Definition at line 55 of file rpmlog.c.

rpmlogCallback rpmlogSetCallback | ( | rpmlogCallback | cb,
|  | rpmlogCallbackData | data
| ) |  |

Set rpmlog callback function.

Parameters

  cb | rpmlog callback function
  data | callback private (user) data

Returns
  previous rpmlog callback function

Definition at line 123 of file rpmlog.c.

References _rpmlogCallback, and _rpmlogCallbackData.

FILE* rpmlogSetFile | ( | FILE * | fp | ) |

Set rpmlog file handle.

Parameters

  fp | rpmlog file handle (NULL uses stdout/stderr)

Returns
  previous rpmlog file handle

Definition at line 174 of file rpmlog.c.

References _stdlog.

Referenced by setLogFile().

int rpmlogSetMask | ( | int | mask | ) |

Set the log mask level.

Parameters

  mask | log mask (0 is no operation)

Returns
  previous log mask

Definition at line 107 of file rpmlog.c.

References rpmlogMask.

Referenced by doFoo(), and rpmlog().

void vrpmlog | ( | unsigned | code,
|  | const char * | fmt,
|  | va_list | ap
| ) |  |

Same as _rpmlog with stdarg argument list.

Definition at line 213 of file rpmlog.c.

References _free(), _rpmlogCallback, _rpmlogCallbackData, EXIT_FAILURE, nrecs, recs, RPMLOG_DEFAULT, RPMLOG_EXIT, RPMLOG_FAC, RPMLOG_MASK, RPMLOG_PRI, RPMLOG_WARNING, rpmlogDefault(), rpmlogMask, vsnprintf(), xmalloc(), xrealloc(), and xstrdup().

Referenced by _rpmlog(), and rpmlog().