1/***************************************************************** 2** 3** @(#) log.h (c) June 2008 Holger Zuleger hznet.de 4** 5** Copyright (c) June 2008, Holger Zuleger HZnet. All rights reserved. 6** 7** This software is open source. 8** 9** Redistribution and use in source and binary forms, with or without 10** modification, are permitted provided that the following conditions 11** are met: 12** 13** Redistributions of source code must retain the above copyright notice, 14** this list of conditions and the following disclaimer. 15** 16** Redistributions in binary form must reproduce the above copyright notice, 17** this list of conditions and the following disclaimer in the documentation 18** and/or other materials provided with the distribution. 19** 20** Neither the name of Holger Zuleger HZnet nor the names of its contributors may 21** be used to endorse or promote products derived from this software without 22** specific prior written permission. 23** 24** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 26** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 27** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 28** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34** POSSIBILITY OF SUCH DAMAGE. 35** 36*****************************************************************/ 37#ifndef LOG_H 38# define LOG_H 39# include <sys/types.h> 40# include <stdarg.h> 41# include <stdio.h> 42# include <time.h> 43# include <syslog.h> 44 45#ifndef LOG_FNAMETMPL 46# define LOG_FNAMETMPL "/zkt-%04d-%02d-%02dT%02d%02d%02dZ+log" 47#endif 48 49#ifndef LOG_DOMAINTMPL 50# define LOG_DOMAINTMPL "zktlog-%s" 51#endif 52 53 54typedef enum { 55 LG_NONE = 0, 56 LG_DEBUG, 57 LG_INFO, 58 LG_NOTICE, 59 LG_WARNING, 60 LG_ERROR, 61 LG_FATAL 62} lg_lvl_t; 63 64extern lg_lvl_t lg_str2lvl (const char *name); 65extern int lg_str2syslog (const char *facility); 66extern const char *lg_lvl2str (lg_lvl_t level); 67extern lg_lvl_t lg_lvl2syslog (lg_lvl_t level); 68extern long lg_geterrcnt (void); 69extern long lg_seterrcnt (long value); 70extern long lg_reseterrcnt (void); 71extern int lg_open (const char *progname, const char *facility, const char *syslevel, const char *path, const char *file, const char *filelevel); 72extern int lg_close (void); 73extern int lg_zone_start (const char *dir, const char *domain); 74extern int lg_zone_end (void); 75extern void lg_args (lg_lvl_t level, int argc, char * const argv[]); 76extern void lg_mesg (int level, char *fmt, ...); 77#endif 78