105 lines
3.1 KiB
C
105 lines
3.1 KiB
C
/* NeoStats - IRC Statistical Services
|
||
** Copyright (c) 1999-2004 Adam Rutter, Justin Hammond
|
||
** http://www.neostats.net/
|
||
**
|
||
** Portions Copyright (c) 2000-2001 ^Enigma^
|
||
**
|
||
** This program 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 of the License, or
|
||
** (at your option) any later version.
|
||
**
|
||
** This program 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 this program; if not, write to the Free Software
|
||
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||
** USA
|
||
**
|
||
** NeoStats CVS Identification
|
||
** $Id$
|
||
*/
|
||
|
||
#ifndef _log_h_
|
||
#define _log_h_
|
||
|
||
/*
|
||
* log.h
|
||
* dynamic configuration runtime libary
|
||
*/
|
||
|
||
/* define the log levels */
|
||
|
||
/* critcal crash type notices */
|
||
#define LOG_CRITICAL 1
|
||
/* something is majorly wrong */
|
||
#define LOG_ERROR 2
|
||
/* Hey, you should know about this type messages */
|
||
#define LOG_WARNING 3
|
||
/* did you know messages */
|
||
#define LOG_NOTICE 4
|
||
/* our normal logging level? */
|
||
#define LOG_NORMAL 5
|
||
/* lots of info about what we are doing */
|
||
#define LOG_INFO 6
|
||
/* debug notices about important functions that are going on */
|
||
#define LOG_DEBUG1 7
|
||
/* more debug notices that are usefull */
|
||
#define LOG_DEBUG2 8
|
||
/* even more stuff, that would be useless to most normal people */
|
||
#define LOG_DEBUG3 9
|
||
/* are you insane? */
|
||
#define LOG_DEBUG4 10
|
||
|
||
/* Scope of Logging Defines: */
|
||
|
||
#define LOG_CORE 0
|
||
#define LOG_MOD 1
|
||
|
||
/* buffer size for new customisable filenames
|
||
20 should be more than sufficient */
|
||
#define MAX_LOGFILENAME 20
|
||
|
||
/* this is for the neostats assert replacement. */
|
||
/* Version 2.4 and later of GCC define a magical variable _PRETTY_FUNCTION__'
|
||
which contains the name of the function currently being defined.
|
||
This is broken in G++ before version 2.6.
|
||
C9x has a similar variable called __func__, but prefer the GCC one since
|
||
it demangles C++ function names. */
|
||
|
||
#define __NASSERT_FUNCTION __PRETTY_FUNCTION__
|
||
/* Not all compilers provide __STRING so define it here if it is unknown */
|
||
#ifndef __STRING
|
||
#define __STRING(x) #x
|
||
#endif /* __STRING */
|
||
|
||
|
||
#ifndef __ASSERT_VOID_CAST
|
||
#define __ASSERT_VOID_CAST (void)
|
||
#endif
|
||
extern void nassert_fail (const char *expr, const char *file, const int line, const char *infunk);
|
||
|
||
#ifndef NDEBUG
|
||
#define nassert(expr) \
|
||
(__ASSERT_VOID_CAST ((expr) ? 0 : \
|
||
(nassert_fail(__STRING(expr), __FILE__, __LINE__, __NASSERT_FUNCTION), 0)))
|
||
#else
|
||
#define nassert(expr) (__ASSERT_VOID_CAST (0))
|
||
#endif
|
||
|
||
extern void nlog (int level, int scope, char *fmt, ...) __attribute__((format(printf,3,4))); /* 2=format 3=params */
|
||
void close_logs ();
|
||
int init_logs ();
|
||
void reset_logs ();
|
||
void fini_logs();
|
||
/* Configurable log filename format string */
|
||
extern char LogFileNameFormat[MAX_LOGFILENAME];
|
||
|
||
#if SQLSRV
|
||
void sqlsrvlog(char *logline);
|
||
#endif
|
||
|
||
#endif
|