/******************************************************************************
* FIDOCONFIG --- library for fidonet configs
******************************************************************************
* log.h : log file maintnance routines declarations
*
* Compiled from hpt/log & htick/log
* by Stas Degteff <g@grumbler.org>, 2:5080/102@fidonet
*
* Portions copyright (C) Matthias Tichy
* Fido: 2:2433/1245 2:2433/1247 2:2432/605.14
* Internet: mtt@tichy.de
* Portions copyright (C) Max Levenkov
* Fido: 2:5000/117
* Internet: sackett@mail.ru
* Portions copyright (C) Gabriel Plutzar
* Fido: 2:31/1
* Internet: gabriel@hit.priv.at
*
* This file is part of FIDOCONFIG library (part of the Husky FIDOnet
* software project)
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* FIDOCONFIG library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with FIDOCONFIG library; see the file COPYING. If not, write
* to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA
*
* See also http://www.gnu.org
*****************************************************************************
* $Id: log.h,v 1.10.2.1 2006/01/21 12:54:20 stas_degteff Exp $
*/
#ifndef _LOG_H
#define _LOG_H
#include <stdio.h>
#include "fidoconf.h"
#define DefaultLogLevels "1234567890ABCDEF"
#define DefaultScreenLogLevels DefaultLogLevels
#define LL_START '1' /* Program start */
#define LL_STOP '1' /* Program end */
#define LL_DUPE '2' /* Dupecheck */
#define LL_DUPECHECK LL_DUPE
#define LL_LINKING '3' /* Link messagebase */
#define LL_SCANNING '4' /* Scan messagebase */
#define LL_POSTING '5' /* Post message */
#define LL_EXEC '6' /* system() & exec() */
#define LL_BUNDLE '7' /* Bundle operations */
#define LL_OUTBOUND '7' /* Outbound operations */
#define LL_FLO '7' /* ?LO file operations */
#define LL_UT '7' /* ?UT file operations */
#define LL_PKT '7' /* PKT file operations */
#define LL_LINK '7' /* Link operation */
#define LL_LINKBEGIN LL_LINK /* Link operations begin */
#define LL_LINKEND LL_LINK /* Link operations end */
#define LL_FREQ '7' /* FREQ processing */
#define LL_ROUTE '7' /* Routing */
#define LL_FROUTE '7' /* File routing */
#define LL_ATTACH '7' /* File attach */
#define LL_MSGPACK '7' /* Message packing */
#define LL_TIC '7' /* TIC parsing */
#define LL_AREAFIX '8' /* areafix & filefix operations */
#define LL_RELINK '8' /* send relink message */
#define LL_AUTOCREATE '8' /* area auto cleate */
#define LL_CRIT '9' /* Critical error: exit */
#define LL_FLAG '0' /* Create/remove/test flag */
#define LL_BUSY '0' /* .BSY exist */
#define LL_LINKBUSY LL_BUSY
#define LL_BSY LL_BUSY
#define LL_ERROR 'A' /* Trivial error: continue */
#define LL_ERR LL_ERROR
#define LL_WARN 'B' /* Warning */
#define LL_WARNING LL_WARN
#define LL_ALERT 'B' /* Alert */
#define LL_INFO 'C' /* Information messages */
#define LL_STAT 'D' /* Statistics */
#define LL_SUMMARY 'E' /* Summary */
#define LL_PRG 'F' /* Program name */
#define LL_SENT 'G' /* Message sent */
#define LL_ENCODE 'H' /* Encode file/message */
#define LL_DECODE 'H' /* Decode file/message */
#define LL_RECODE 'H' /* Recoding tables (codepage translations) */
#define LL_MSGID 'I' /* Generate/check MSGID */
#define LL_ECHOMAIL 'J' /* Echomail phase */
#define LL_FILEBOX 'K' /* Filebox phase/operations */
#define LL_BOX LL_FILEBOX
#define LL_NETMAIL 'L' /* Netmail phase */
#define LL_CREAT 'M' /* Create file */
#define LL_DEL 'N' /* Delete file */
#define LL_FILE 'O' /* Other file operations (read, write, seek, ...) */
#define LL_DIR 'P' /* Directory create/delete/etc */
#define LL_PATH LL_DIR
#define LL_EMAIL 'Q' /* Email parsing or construct */
#define LL_TRUNC 'R' /* Truncate file */
#define LL_DELETE LL_DEL
#define LL_TRUNCATE LL_TRUNC
#define LL_FILESENT 'S' /* File sent */
#define LL_FILETEST 'T' /* Test files (exist, permittions) */
#define LL_FILENAME 'X' /* Filenames construct */
#define LL_FUNC 'U' /* Functions calls */
#define LL_LINKPASS 'Y' /* Link messagebase pass (some phase) */
#define LL_SRCLINE 'Z' /* Source lines numbers */
#define LL_DEBUG 'a' /* Debug output */
#define LL_DEBUGA 'a' /* Debug output */
#define LL_DEBUGB 'b' /* Debug output */
#define LL_DEBUGC 'c' /* Debug output */
#define LL_DEBUGD 'd' /* Debug output */
#define LL_DEBUGE 'e' /* Debug output */
#define LL_DEBUGF 'f' /* Debug output */
#define LL_DEBUGG 'g' /* Debug output */
#define LL_DEBUGH 'h' /* Debug output */
#define LL_DEBUGI 'i' /* Debug output */
#define LL_DEBUGJ 'j' /* Debug output */
#define LL_DEBUGK 'k' /* Debug output */
#define LL_DEBUGL 'l' /* Debug output */
#define LL_DEBUGM 'm' /* Debug output */
#define LL_DEBUGN 'n' /* Debug output */
#define LL_DEBUGO 'o' /* Debug output */
#define LL_DEBUGP 'p' /* Debug output */
#define LL_DEBUGQ 'q' /* Debug output */
#define LL_DEBUGR 'r' /* Debug output */
#define LL_DEBUGS 's' /* Debug output */
#define LL_DEBUGT 't' /* Debug output */
#define LL_DEBUGU 'u' /* Debug output */
#define LL_DEBUGV 'v' /* Debug output */
#define LL_DEBUGW 'w' /* Debug output */
#define LL_DEBUGX 'x' /* Debug output */
#define LL_DEBUGY 'y' /* Debug output */
#define LL_DEBUGZ 'z' /* Debug output */
#define LL_DEBUGz 'z' /* Debug output */
#ifdef __cplusplus
extern "C" {
#endif
struct _log {
char *keysAllowed; /* only log-data with one of these keys will be stored */
char *keysPrinted; /* only log-data with these keys will be printed to screen */
char *appName; /* name of the application which has created this log entry */
FILE *logFile; /* in this logFile */
unsigned char isopen; /* is the log-file open? */
unsigned int logEcho; /* echo log to screen? */
};
typedef struct _log s_log;
FCONF_EXT s_log *openLog(char *fileName, char *appN, s_fidoconfig *config);
/*DOC
Input: fileName is a valid name for a file.
appN contains the name of the application.
Output: openLog returns a pointer to an s_log struct.
FZ: openLog fills the s_log struct, opens the logfile and returns the struct
*/
FCONF_EXT void closeLog();
/*DOC
Input: log is a pointer to a s_log
Output: ./.
FZ: closes the logFile and frees all mem use by log.
*/
FCONF_EXT void w_log(char key, char *logString, ...);
/*DOC
Input: key is the key under which the log-entry will be stored
logString is the logEntry
Output: ./.
FZ: if the key is in keysAllowed the logString will be written to the log.
*/
/* FCONF_EXT void writeLogEntry(s_log *log, char key, char *logString, ...); */
#ifdef __cplusplus
}
#endif
#endif
syntax highlighted by Code2HTML, v. 0.9.1