| tLogging functions moved into a separate module. - vaccinewars - be a doctor and try to vaccinate the world |
| git clone git://src.adamsgaard.dk/vaccinewars |
| Log |
| Files |
| Refs |
| README |
| LICENSE |
| --- |
| commit 509602a28911593055ddfce22972b3736b8271b1 |
| parent 010239fbe0cf8f453f0f09a0af10bb090e977997 |
| Author: Ben Webb |
| Date: Fri, 24 May 2002 11:35:23 +0000
Logging functions moved into a separate module.
Diffstat:
M src/Makefile.am | 6 +++---
M src/dopewars.c | 98 +------------------------------
M src/dopewars.h | 10 ----------
A src/log.c | 130 +++++++++++++++++++++++++++++++
A src/log.h | 43 ++++++++++++++++++++++++++++++
5 files changed, 177 insertions(+), 110 deletions(-)
--- |
| diff --git a/src/Makefile.am b/src/Makefile.am |
| t@@ -25,9 +25,9 @@ dopewars_DEPENDENCIES = @GUILIB@ @CURSESLIB@ @GTKPORTLIB@ @CURSESPORTLIB@ @INTLL
bin_PROGRAMS = dopewars
dopewars_SOURCES = admin.c admin.h AIPlayer.c AIPlayer.h util.c util.h \
- dopewars.c dopewars.h error.c error.h message.c message.h \
- network.c network.h nls.h serverside.c serverside.h \
- sound.c sound.h \
+ dopewars.c dopewars.h error.c error.h log.c log.h \
+ message.c message.h network.c network.h nls.h \
+ serverside.c serverside.h sound.c sound.h \
tstring.c tstring.h winmain.c winmain.h
INCLUDES = -I../intl -I${srcdir} -I.. @GTK_CFLAGS@
DEFS = @DEFS@ -DLOCALEDIR=\"${localedir}\" @PLUGINDEF@ |
| diff --git a/src/dopewars.c b/src/dopewars.c |
| t@@ -42,10 +42,8 @@
#include
#include
#include
-#ifdef HAVE_SYSLOG_H
-#include
-#endif
#include "admin.h"
+#include "log.h"
#include "message.h"
#include "nls.h"
#include "serverside.h"
t@@ -1454,42 +1452,6 @@ void RemoveAllEntries(DopeList *List, Player *Play)
} while (i >= 0);
}
-/*
- * General logging function. All messages should be given a loglevel,
- * from 0 to 5 (0=vital, 2=normal, 5=maximum debugging output). This
- * is essentially just a wrapper around the GLib g_log function.
- */
-void dopelog(const int loglevel, const LogFlags flags,
- const gchar *format, ...)
-{
- va_list args;
-
- /* Don't print server log messages when running standalone */
- if (flags & LF_SERVER && !Network)
- return;
-
- va_start(args, format);
- g_logv(G_LOG_DOMAIN, 1 << (loglevel + G_LOG_LEVEL_USER_SHIFT), format,
- args);
- va_end(args);
-
-#ifdef HAVE_SYSLOG_H
- if (loglevel <= Log.Level) {
- va_start(args, format);
- vsyslog(LOG_INFO, format, args);
- va_end(args);
- }
-#endif
-}
-
-/*
- * Returns the bitmask necessary to catch all custom log messages.
- */
-GLogLevelFlags LogMask()
-{
- return ((1 << (MAXLOG)) - 1) << G_LOG_LEVEL_USER_SHIFT;
-}
-
void ResizeLocations(int NewNum)
{
int i;
t@@ -2764,64 +2726,6 @@ void StripTerminators(gchar *str)
}
}
-/*
- * Returns the text to be displayed in a log message, if any.
- */
-GString *GetLogString(GLogLevelFlags log_level, const gchar *message)
-{
- GString *text;
- gchar TimeBuf[80];
- gint i;
- time_t tim;
- struct tm *timep;
-
- text = g_string_new("");
- if (Log.Timestamp) {
- tim = time(NULL);
- timep = localtime(&tim);
- strftime(TimeBuf, 80, Log.Timestamp, timep);
- TimeBuf[79] = '\0';
- g_string_append(text, TimeBuf);
- }
-
- for (i = 0; i < MAXLOG; i++)
- if (log_level & (1 << (G_LOG_LEVEL_USER_SHIFT + i))) {
- if (i > Log.Level) {
- g_string_free(text, TRUE);
- return NULL;
- }
- g_string_sprintfa(text, "%d: ", i);
- }
- g_string_append(text, message);
- return text;
-}
-
-void OpenLog(void)
-{
- CloseLog();
-#ifdef HAVE_SYSLOG_H
- openlog(PACKAGE, LOG_PID, LOG_USER);
-#endif
- if (Log.File[0] == '\0')
- return;
- Log.fp = fopen(Log.File, "a");
- if (Log.fp) {
-#ifdef SETVBUF_REVERSED /* 2nd and 3rd arguments are reversed on
- * some systems */
- setvbuf(Log.fp, _IOLBF, (char *)NULL, 0);
-#else
- setvbuf(Log.fp, (char *)NULL, _IOLBF, 0);
-#endif
- }
-}
-
-void CloseLog(void)
-{
- if (Log.fp)
- fclose(Log.fp);
- Log.fp = NULL;
-}
-
#ifndef CYGWIN
#if NETWORKING && !GUI_SERVER |
| diff --git a/src/dopewars.h b/src/dopewars.h |
| t@@ -154,10 +154,6 @@ typedef enum {
PEYOTE, SHROOMS, SPEED, WEED
} DrugIndex;
-typedef enum {
- LF_SERVER = (1 << 0)
-} LogFlags;
-
struct LOG {
gchar *File;
gint Level;
t@@ -428,14 +424,8 @@ void PrintConfigValue(int GlobalIndex, int StructIndex,
gboolean SetConfigValue(int GlobalIndex, int StructIndex,
gboolean IndexGiven, GScanner *scanner);
gboolean IsCop(Player *Play);
-void dopelog(const int loglevel, const LogFlags flags,
- const gchar *format, ...);
-GLogLevelFlags LogMask(void);
-GString *GetLogString(GLogLevelFlags log_level, const gchar *message);
void RestoreConfig(void);
void ScannerErrorHandler(GScanner *scanner, gchar *msg, gint error);
-void OpenLog(void);
-void CloseLog(void);
gboolean IsConnectedPlayer(Player *play);
void BackupConfig(void);
void WriteConfigFile(FILE *fp); |
| diff --git a/src/log.c b/src/log.c |
| t@@ -0,0 +1,130 @@
+/************************************************************************
+ * log.c dopewars - logging functions *
+ * Copyright (C) 1998-2002 Ben Webb *
+ * Email: ben@bellatrix.pcl.ox.ac.uk *
+ * WWW: http://dopewars.sourceforge.net/ *
+ * *
+ * 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. *
+ ************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include
+#endif
+
+#include
+#include
+#include
+#include
+#ifdef HAVE_SYSLOG_H
+#include
+#endif
+
+#include "dopewars.h"
+#include "log.h"
+
+/*
+ * General logging function. All messages should be given a loglevel,
+ * from 0 to 5 (0=vital, 2=normal, 5=maximum debugging output). This
+ * is essentially just a wrapper around the GLib g_log function.
+ */
+void dopelog(const int loglevel, const LogFlags flags,
+ const gchar *format, ...)
+{
+ va_list args;
+
+ /* Don't print server log messages when running standalone */
+ if (flags & LF_SERVER && !Network)
+ return;
+
+ va_start(args, format);
+ g_logv(G_LOG_DOMAIN, 1 << (loglevel + G_LOG_LEVEL_USER_SHIFT), format,
+ args);
+ va_end(args);
+
+#ifdef HAVE_SYSLOG_H
+ if (loglevel <= Log.Level) {
+ va_start(args, format);
+ vsyslog(LOG_INFO, format, args);
+ va_end(args);
+ }
+#endif
+}
+
+/*
+ * Returns the bitmask necessary to catch all custom log messages.
+ */
+GLogLevelFlags LogMask()
+{
+ return ((1 << (MAXLOG)) - 1) << G_LOG_LEVEL_USER_SHIFT;
+}
+
+/*
+ * Returns the text to be displayed in a log message, if any.
+ */
+GString *GetLogString(GLogLevelFlags log_level, const gchar *message)
+{
+ GString *text;
+ gchar TimeBuf[80];
+ gint i;
+ time_t tim;
+ struct tm *timep;
+
+ text = g_string_new("");
+ if (Log.Timestamp) {
+ tim = time(NULL);
+ timep = localtime(&tim);
+ strftime(TimeBuf, 80, Log.Timestamp, timep);
+ TimeBuf[79] = '\0';
+ g_string_append(text, TimeBuf);
+ }
+
+ for (i = 0; i < MAXLOG; i++)
+ if (log_level & (1 << (G_LOG_LEVEL_USER_SHIFT + i))) {
+ if (i > Log.Level) {
+ g_string_free(text, TRUE);
+ return NULL;
+ }
+ g_string_sprintfa(text, "%d: ", i);
+ }
+ g_string_append(text, message);
+ return text;
+}
+
+void OpenLog(void)
+{
+ CloseLog();
+#ifdef HAVE_SYSLOG_H
+ openlog(PACKAGE, LOG_PID, LOG_USER);
+#endif
+ if (Log.File[0] == '\0')
+ return;
+ Log.fp = fopen(Log.File, "a");
+ if (Log.fp) {
+#ifdef SETVBUF_REVERSED /* 2nd and 3rd arguments are reversed on
+ * some systems */
+ setvbuf(Log.fp, _IOLBF, (char *)NULL, 0);
+#else
+ setvbuf(Log.fp, (char *)NULL, _IOLBF, 0);
+#endif
+ }
+}
+
+void CloseLog(void)
+{
+ if (Log.fp)
+ fclose(Log.fp);
+ Log.fp = NULL;
+} |
| diff --git a/src/log.h b/src/log.h |
| t@@ -0,0 +1,43 @@
+/************************************************************************
+ * log.h Logging functions for dopewars *
+ * Copyright (C) 1998-2002 Ben Webb *
+ * Email: ben@bellatrix.pcl.ox.ac.uk *
+ * WWW: http://dopewars.sourceforge.net/ *
+ * *
+ * 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. *
+ ************************************************************************/
+
+#ifndef __DP_LOG_H__
+#define __DP_LOG_H__
+
+#ifdef HAVE_CONFIG_H
+#include
+#endif
+
+#include
+
+typedef enum {
+ LF_SERVER = (1 << 0)
+} LogFlags;
+
+void dopelog(const int loglevel, const LogFlags flags,
+ const gchar *format, ...);
+GLogLevelFlags LogMask(void);
+GString *GetLogString(GLogLevelFlags log_level, const gchar *message);
+void OpenLog(void);
+void CloseLog(void);
+
+#endif /* __DP_LOG_H__ */ |