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
       ensure correct ownership  and  permissions  from  the  caller  to
       pmOpenLog).

       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  di‐
       agnostics  on  oldstream  stream  (normally stderr) rather than a
       file, e.g.  pmlogger -l- or pmcd -f -l-.  Logging  to  stderr  is
       also  useful for PMDAs in a containerized environment where it is
       beneficial 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 pmcd.log or the original stream inherited from the shell.

       On  return, the function value is the standard I/O stream, possi‐
       bly 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
       message 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   2024-06-14.
       (At  that time, the date of the most recent commit that was found
       in the repository was 2024-06-14.)  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)