Provided by: publib-dev_0.40-1_amd64 bug

NAME

       log - simple log file output

SYNOPSIS

       #include <publib.h>

       int log_open(const char *filename, int min_level);
       int log_add(FILE *f, int min_level);
       void log_set_level(int log_handle, int min_level);
       void log_set_localtime(int log_handle, int use_localtime);
       int log_close(void);
       void log_off(void);
       void log_on(void);
       void log_chat(const char *fmt, ...);
       void log_note(const char *fmt, ...);
       void log_warn(const char *fmt, ...);
       void log_error(const char *fmt, ...);
       void log_fatal(const char *fmt, ...);
       void log_printf(int level, const char *fmt, ...);

DESCRIPTION

       These  routines implement a simple log file facility.  There can be several log files open
       at the same time (up to 256, but limits on the number of concurrently open files may set a
       lower  limit).   Each log message is associated with a level of severity, which can be any
       integer, but the levels log_level_chat, log_level_note,  log_level_warn,  log_level_error,
       and log_level_fatal are predefined, and can easily be used by calling the respective print
       functions (log_chat, etc.); for other log levels, log_printf must be  called.   Each  open
       log  file  is  associated  by  a  minimum level.  Messages below the minimum level are not
       output to that log file.

       The log printing functions attempt to force the messages to be written  to  the  disk  (or
       wherever  they're  going),  using  fflush(3).   This  will hopefully avoid problems due to
       delayed messages that buffering may cause.

       Log files are opened with log_open.  An already open file (such as stderr) can be added to
       the  list  of open log files with log_add.  (Note that the file should be opened in append
       mode, "a" to fopen(3)).  Both of these functions set the  minimum  level  as  well.   They
       return  a  log file handle, which is used to identify the log file to the other functions.
       The minimum level can later be adjusted with  log_set_level.   log_close  closes  all  log
       files.

       By  default,  times  in log files are reported in UTC, but each log file can be set to use
       local time with log_set_localtime.

       Logging may temporarily be turned off for all log files at the same time with log_off.  It
       can be turned back on with log_on.

RETURN VALUE

       log_open and log_add return a log file handle.  log_close returns -1 if the closing of any
       log file failed, 0 if all went well.

SEE ALSO

       publib(3), syslog(2)

AUTHOR

       Lars Wirzenius (lars.wirzenius@helsinki.fi)