ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/logger.C
(Generate patch)

Comparing deliantra/server/common/logger.C (file contents):
Revision 1.6 by pippijn, Mon Dec 11 19:46:46 2006 UTC vs.
Revision 1.10 by root, Mon Jan 8 23:36:15 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
3 3
4 Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 Copyright (C) 1992 Frank Tore Johansen
6 7
7 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 21
21 The authors can be reached via e-mail at <crossfire@schmorp.de> 22 The authors can be reached via e-mail at <crossfire@schmorp.de>
22*/ 23*/
23 24
24
25#include <stdarg.h> 25#include <stdarg.h>
26#include <global.h> 26#include <global.h>
27#include <funcpoint.h> 27#include <funcpoint.h>
28 28
29/* 29/*
36 */ 36 */
37 37
38void 38void
39LOG (LogLevel logLevel, const char *format, ...) 39LOG (LogLevel logLevel, const char *format, ...)
40{ 40{
41 char buf[20480]; /* This needs to be really really big - larger
42 * than any other buffer, since that buffer may
43 * need to be put in this one.
44 */
45 char tbuf[20480];
46
47 time_t curtime = time (NULL);
48 struct tm *ptime = localtime (&curtime);
49
50 strftime (tbuf, 256, "%Y-%m-%d %H:%M:%S ", ptime);
51
52 va_list ap;
53
54 va_start (ap, format);
55
56 buf[0] = '\0';
57 if (logLevel <= settings.debug) 41 if (logLevel <= settings.debug)
58 { 42 {
43 char msec[20];
44 char buf[20460];
45 char tbuf[20480];
46
47 struct timeval tv;
48 gettimeofday (&tv, 0);
49 struct tm *ptime = localtime (&tv.tv_sec);
50
51 strftime (tbuf, sizeof (tbuf), "%Y-%m-%d %H:%M:%S", ptime);
52 sprintf (msec, ".%03d ", (int)(tv.tv_usec / 1000));
53
54 va_list ap;
55 va_start (ap, format);
59 vsnprintf (buf, sizeof (buf), format, ap); 56 vsnprintf (buf, sizeof (buf), format, ap);
57 va_end (ap);
58
59 strncat (tbuf, msec, sizeof (tbuf));
60 strncat (tbuf, buf, 20460); 60 strncat (tbuf, buf, sizeof (tbuf));
61
61 fputs (tbuf, logfile); 62 fputs (tbuf, logfile);
63 fputs (tbuf, stderr);
62 } 64 }
63 if (!exiting && !trying_emergency_save && logLevel == llevError && ++nroferrors > MAX_ERRORS)
64 {
65 exiting = 1;
66 if (!trying_emergency_save)
67 emergency_save (0);
68 }
69 va_end (ap);
70} 65}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines