pmopenlog(3) — Linux manual page

NAME | C SYNOPSIS | DESCRIPTION | SEE ALSO | COLOPHON

PMOPENLOG(3)             Library Functions Manual            PMOPENLOG(3)

NAME         top

       pmOpenLog - create a log file for diagnostics and debug output

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       FILE *pmOpenLog(const char *progname, const char *logname,
               FILE *oldstream, int *status);

       cc ... -lpcp

DESCRIPTION         top

       pmOpenLog  reassigns  the  standard I/O stream oldstream (normally
       stderr) to be associated with the file logname.

       If logname is not "-" and the file already exists, it will be  re‐
       named  to  logname.prev else removed.  Due to permissions restric‐
       tions, the rename or removal may not succeed, but  in  the  common
       use  cases  logname.prev remains with the contents of the previous
       version of logname.  Then logname is recreated if possible (to en‐
       sure correct ownership and permissions from the caller to  pmOpen‐
       Log).

       As  a special case, if logname is "-" then no renaming, removal or
       reopening is performed and the function simply sets  status  to  1
       and returns oldstream.  This is useful when the caller wants diag‐
       nostics  on oldstream stream (normally stderr) rather than a file,
       e.g.  pmlogger -l- or pmcd -f -l-.  Logging to stderr is also use‐
       ful for PMDAs in a containerized environment where it  is  benefi‐
       cial  for all PMDA logs to be written to pmcd's stderr stream (and
       thus to a single destination), whether that is a file such as  pm‐
       cd.log or the original stream inherited from the shell.

       On return, the function value is the standard I/O stream, possibly
       replacing  oldstream.   In the event of an error, the return value
       will be oldstream unchanged and status will be 0.

       For success, status is 1, and a standard preamble  is  written  to
       logname
            Log for progname on hostname started date and time
       and an atexit(3) handler is installed to write the postscript mes‐
       sage to logname
            Log finished date and time
       when the processes exits.

       progname is only used to annotate messages.

SEE ALSO         top

       atexit(3) and freopen(3).

COLOPHON         top

       This  page is part of the PCP (Performance Co-Pilot) project.  In‐
       formation about the project can be found at  ⟨http://www.pcp.io/⟩.
       If  you  have  a  bug  report  for  this  manual  page, send it to
       pcp@groups.io.  This page was obtained from the project's upstream
       Git repository ⟨https://github.com/performancecopilot/pcp.git⟩  on
       2025-02-02.   (At  that  time,  the date of the most recent commit
       that was found in the repository was 2025-01-30.)  If you discover
       any rendering problems in this HTML version of the  page,  or  you
       believe  there is a better or more up-to-date source for the page,
       or you have corrections or improvements to the information in this
       COLOPHON (which is not part of the original manual page),  send  a
       mail to man-pages@man7.org

Performance Co-Pilot               PCP                       PMOPENLOG(3)

Pages that refer to this page: pmnotifyerr(3)__pmnotifythrottle(3)