This repository has been archived on 2025-02-12. You can view files and clone it, but cannot push or open issues or pull requests.
MQServer/Include/log.h

114 lines
3.2 KiB
C
Raw Permalink Normal View History

/* 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_AUTHQ 1
#define LOG_MESSQ 2
#define LOG_PROT 3
/* buffer size for new customisable filenames
20 should be more than sufficient */
#define MAX_LOGFILENAME 20
/* XXX make this go away */
#define fini_logs close_logs
/* 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