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.5 by root, Thu Sep 14 22:33:59 2006 UTC vs.
Revision 1.8 by pippijn, Sat Jan 6 14:42:29 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
36 */ 37 */
37 38
38void 39void
39LOG (LogLevel logLevel, const char *format, ...) 40LOG (LogLevel logLevel, const char *format, ...)
40{ 41{
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) 42 if (logLevel <= settings.debug)
58 { 43 {
44 char buf[20480]; /* This needs to be really really big - larger
45 * than any other buffer, since that buffer may
46 * need to be put in this one.
47 */
48 char tbuf[20480];
49
50 time_t curtime = time (NULL);
51 struct tm *ptime = localtime (&curtime);
52
53 strftime (tbuf, 256, "%Y-%m-%d %H:%M:%S ", ptime);
54
55 va_list ap;
56
57 va_start (ap, format);
58
59 vsnprintf (buf, sizeof (buf), format, ap); 59 vsnprintf (buf, sizeof (buf), format, ap);
60 strncat (tbuf, buf, 20460); 60 strncat (tbuf, buf, 20460);
61#ifdef WIN32 /* ---win32 change log handling for win32 */
62 fputs (tbuf, logfile); /* wrote to file or stdout */
63# ifdef DEBUG /* if we have a debug version, we want see ALL output */
64 fflush (logfile); /* so flush this! */
65# endif
66 if (logfile != stderr) /* if was it a logfile wrote it to screen too */
67 fputs (tbuf, stderr);
68#else
69 fputs (tbuf, logfile); 61 fputs (tbuf, logfile);
70#endif 62 fputs (tbuf, stderr);
63
64 va_end (ap);
71 } 65 }
72 if (!exiting && !trying_emergency_save && logLevel == llevError && ++nroferrors > MAX_ERRORS)
73 {
74 exiting = 1;
75 if (!trying_emergency_save)
76 emergency_save (0);
77 }
78 va_end (ap);
79} 66}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines