mirror of
https://git.code.sf.net/p/quake/newtree
synced 2024-11-25 05:21:58 +00:00
Enabled time stamped messages for server. To turn it on, set
sv_timestamps. To configure how timestamps are formatted, use the sv_timefmt Cvar. It's a formatted string, with the following special tokens (taken from the strftime() manual page): %a The abbreviated weekday name according to the cur rent locale. %A The full weekday name according to the current locale. %b The abbreviated month name according to the current locale. %B The full month name according to the current locale. %c The preferred date and time representation for the current locale. %C The century number (year/100) as a 2-digit integer. (SU) %C The century number (the year divided by 100 and truncated to an integer). %d The day of the month as a decimal number (range 01 to 31). %D Equivalent to %m/%d/%y. (Yecch - for Americans only. Americans should note that in other coun tries %d/%m/%y is rather common. This means that in international context this format is ambiguous and should not be used.) (SU) %e Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space. (SU) %E Modifier: use alternative format, see below. (SU) %G The ISO 8601 year with century as a decimal number. The 4-digit year corresponding to the ISO week num ber (see %V). This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead. (TZ) %g Like %G, but without century, i.e., with a 2-digit year (00-99). (TZ) %h Equivalent to %b. (SU) %H The hour as a decimal number using a 24-hour clock (range 00 to 23). %I The hour as a decimal number using a 12-hour clock (range 01 to 12). %j The day of the year as a decimal number (range 001 to 366). %k The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank. (See also %H.) (TZ) %l The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank. (See also %I.) (TZ) %m The month as a decimal number (range 01 to 12). %M The minute as a decimal number (range 00 to 59). %n A newline character. (SU) %O Modifier: use alternative format, see below. (SU) %p Either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale. Noon is treated as `pm' and midnight as `am'. %P Like %p but in lowercase: `am' or `pm' or a corre sponding string for the current locale. (GNU) %r The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to `%I:%M:%S %p'. (SU) %R The time in 24-hour notation (%H:%M). (SU) For a version including the seconds, see %T below. %s The number of seconds since the Epoch, i.e., since 1970-01-01 00:00:00 UTC. (TZ) %S The second as a decimal number (range 00 to 61). %t A tab character. (SU) %T The time in 24-hour notation (%H:%M:%S). (SU) %u The day of the week as a decimal, range 1 to 7, Monday being 1. See also %w. (SU) %U The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. See also %V and %W. %V The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. See also %U and %W. (SU) %w The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u. %W The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01. %x The preferred date representation for the current locale without the time. %X The preferred time representation for the current locale without the date. %y The year as a decimal number without a century (range 00 to 99). %Y The year as a decimal number including the century. %z The time-zone as hour offset from GMT. Required to emit RFC822-conformant dates (using "%a, %d %b %Y %H:%M:%S %z"). (GNU) %Z The time zone or name or abbreviation. %+ The date and time in date(1) format. (TZ) %% A literal `%' character. Some of these may not work on some systems.
This commit is contained in:
parent
808e3295ab
commit
acf2de7612
2 changed files with 33 additions and 8 deletions
|
@ -93,6 +93,9 @@ extern cvar_t *sv_timekick;
|
|||
extern cvar_t *sv_timekick_fuzz;
|
||||
extern cvar_t *sv_timekick_interval;
|
||||
|
||||
cvar_t *sv_timestamps;
|
||||
cvar_t *sv_timefmt;
|
||||
|
||||
//
|
||||
// game rules mirrored in svs.info
|
||||
//
|
||||
|
@ -1390,6 +1393,9 @@ void SV_InitLocal (void)
|
|||
sv_timekick_fuzz = Cvar_Get("sv_timekick_fuzz", "15", CVAR_NONE, "Time cheat \"fuzz factor\"");
|
||||
sv_timekick_interval = Cvar_Get("sv_timekick_interval", "30", CVAR_NONE, "Time cheat check interval");
|
||||
|
||||
sv_timestamps = Cvar_Get ("sv_timestamps", "0", CVAR_NONE, "Time/date stamps in log entries");
|
||||
sv_timefmt = Cvar_Get ("sv_timefmt", "[%b %e %X] ", CVAR_NONE, "Time/date format to use");
|
||||
|
||||
filterban = Cvar_Get("filterban", "1", CVAR_NONE, "None");
|
||||
|
||||
allow_download = Cvar_Get("allow_download", "1", CVAR_NONE, "None");
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#define CHAN_AUTO 0
|
||||
#define CHAN_WEAPON 1
|
||||
|
@ -61,7 +62,9 @@ char outputbuf[8000];
|
|||
|
||||
redirect_t sv_redirected;
|
||||
|
||||
extern cvar_t *sv_phs;
|
||||
extern cvar_t *sv_phs;
|
||||
extern cvar_t *sv_timestamps;
|
||||
extern cvar_t *sv_timefmt;
|
||||
|
||||
/*
|
||||
==================
|
||||
|
@ -129,23 +132,39 @@ void Con_Printf (char *fmt, ...)
|
|||
{
|
||||
va_list argptr;
|
||||
char msg[MAXPRINTMSG];
|
||||
char msg2[MAXPRINTMSG];
|
||||
char msg3[MAXPRINTMSG];
|
||||
time_t mytime = 0;
|
||||
struct tm *local = NULL;
|
||||
qboolean timestamps = false;
|
||||
|
||||
va_start (argptr, fmt);
|
||||
vsnprintf (msg, sizeof(msg), fmt, argptr);
|
||||
va_end (argptr);
|
||||
|
||||
// add to redirected message
|
||||
if (sv_redirected)
|
||||
{
|
||||
if (strlen (msg) + strlen(outputbuf) > sizeof(outputbuf) - 1)
|
||||
if (sv_timestamps && sv_timestamps->value && sv_timefmt && sv_timefmt->string)
|
||||
timestamps = true;
|
||||
|
||||
if (timestamps) {
|
||||
mytime = time (NULL);
|
||||
local = localtime (&mytime);
|
||||
strftime (msg3, sizeof (msg3), sv_timefmt->string, local);
|
||||
|
||||
snprintf (msg2, sizeof (msg2), "%s%s", msg3, msg);
|
||||
} else {
|
||||
snprintf (msg2, sizeof (msg2), "%s", msg);
|
||||
}
|
||||
|
||||
if (sv_redirected) { // add to redirected message
|
||||
if (strlen (msg2) + strlen(outputbuf) > sizeof(outputbuf) - 1)
|
||||
SV_FlushRedirect ();
|
||||
strcat (outputbuf, msg);
|
||||
strcat (outputbuf, msg2);
|
||||
return;
|
||||
}
|
||||
|
||||
Sys_Printf ("%s", msg); // also echo to debugging console
|
||||
Sys_Printf ("%s", msg2); // also echo to debugging console
|
||||
if (sv_logfile)
|
||||
fprintf (sv_logfile, "%s", msg);
|
||||
fprintf (sv_logfile, "%s", msg2);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue