From: kramm Date: Fri, 21 Dec 2001 10:00:05 +0000 (+0000) Subject: speedup in logf and some error checking included. X-Git-Tag: release-0-2-2~78 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=757c0aa98fb4168e6a7bc208cc89875ca88b842c speedup in logf and some error checking included. --- diff --git a/lib/log.c b/lib/log.c index 1999b17..7d2f8ad 100644 --- a/lib/log.c +++ b/lib/log.c @@ -27,32 +27,38 @@ #include "log.h" -#define LOGLEVEL_FATAL 0 -#define LOGLEVEL_ERROR 1 -#define LOGLEVEL_WARNING 2 -#define LOGLEVEL_NOTICE 3 -#define LOGLEVEL_VERBOSE 4 -#define LOGLEVEL_DEBUG 5 - -int screenloglevel; -int fileloglevel; -int socketloglevel; -FILE *logFile = 0; +static int screenloglevel = 1; +static int fileloglevel = -1; +static int socketloglevel = -1; +static int maxloglevel = 1; +static FILE *logFile = 0; #ifdef __NT__ -SOCKET logSocket; +static SOCKET logSocket; #else -int logSocket = 0; +static int logSocket = 0; #endif -char bLogToSock = 0; +static char bLogToSock = 0; -void initlogSocket(char* servAddr, char* logPort); +static void initlogSocket(char* servAddr, char* logPort); void initLog(char* pLogName, int fileloglevel, char* servAddr, char* logPort, int serverlevel, int screenlevel) { screenloglevel = screenlevel; fileloglevel = fileloglevel; socketloglevel = screenlevel; + + maxloglevel=screenloglevel; + if(fileloglevel>maxloglevel && pLogName) + maxloglevel=fileloglevel; + if(serverlevel>maxloglevel && servAddr) + maxloglevel=serverlevel; + + if(!servAddr) + serverlevel = -1; + if(!pLogName) + fileloglevel = -1; + logFile = NULL; bLogToSock = 0; @@ -63,7 +69,7 @@ void initLog(char* pLogName, int fileloglevel, char* servAddr, char* logPort, in initlogSocket(servAddr, logPort); } -void initlogSocket(char* servAddr, char* logPort) +static void initlogSocket(char* servAddr, char* logPort) { #ifndef __NT__ bLogToSock = 0; @@ -243,8 +249,16 @@ void logf(const char* format, ...) char buf[1024]; va_list arglist; va_start(arglist, format); - buf[0] = 0; - vsprintf(&buf[strlen(buf)], format, arglist); + + /* speed up hack */ + if(format[0]=='<') { + char*z = "fewnvd"; + char*x = strchr(z,format[0]); + if(x && (x-z)>maxloglevel) + return; + } + + vsprintf(buf, format, arglist); va_end(arglist); strcat(buf, "\n"); log(buf); diff --git a/lib/log.h b/lib/log.h index c31eeee..481cecc 100644 --- a/lib/log.h +++ b/lib/log.h @@ -27,10 +27,6 @@ #define LOGLEVEL_VERBOSE 4 #define LOGLEVEL_DEBUG 5 -extern int screenloglevel; -extern int socketloglevel; -extern int fileloglevel; - extern void initLog(char* pLogDir, int fileloglevel, char* servAddr, char* logPort, int serverloglevel, int screenloglevel); extern void log(char* logString); extern void logf(const char* logFormat, ...);