Started adding new logger

This commit is contained in:
Walter Julius Hennecke 2013-08-25 01:45:11 +02:00
parent f65df05320
commit 18118404e2
10 changed files with 125 additions and 2 deletions

View file

@ -2241,6 +2241,7 @@ Q3GOBJ_ = \
$(B)/$(BASEGAME)/game/g_sql.o \
$(B)/$(BASEGAME)/game/g_breakable.o \
$(B)/$(BASEGAME)/game/g_cinematic.o \
$(B)/$(BASEGAME)/game/g_logger.o \
$(B)/$(BASEGAME)/game/lua_game.o \
$(B)/$(BASEGAME)/game/lua_entity.o \
$(B)/$(BASEGAME)/game/lua_vector.o \

View file

@ -924,5 +924,8 @@ void CG_InitConsoleCommands( void ) {
/* precacheFile */
trap_AddCommand("generatePrecacheFile");
/* test new logger on game side */
trap_AddCommand("testlogger");
}

View file

@ -10,7 +10,7 @@
// second version that must match between game and cgame
#define RPGX_VERSION "RPG-X V 2.3 CB 4"
#define RPGX_COMPILEDATE __DATE__ " " __TIME__
#define RPGX_COMPILEDBY "Jenkins"
#define RPGX_COMPILEDBY "Jenkins Buildserver"
#define GAME_VERSION "RPG-X v" RPGX_VERSION
#define INJURED_MODE_HEALTH 20 //!<For the injured mode health system.

View file

@ -6,6 +6,7 @@
#include "g_sql.h"
#include "g_main.h"
#include "g_client.h"
#include "g_logger.h"
//#include <windows.h>
@ -7565,6 +7566,22 @@ void Cmd_GeneratePrecacheFile(gentity_t *ent) {
trap_FS_FCloseFile(f);
}
static void Cmd_TestLogger(gentity_t* ent) {
G_Logger(LL_ALWAYS, "always print this %d %s\n", 42, "42");
G_Logger(LL_ERROR, "this is an error %d %s\n", 42, "42");
G_Logger(LL_WARN, "this is a warning %d %s\n", 42, "42");
G_Logger(LL_INFO, "this is an info %d %s\n", 42, "42");
G_Logger(LL_DEBUG, "this is a debug message %d %s\n", 42, "42");
G_Logger(LL_TRACE, "this is a trace message %d %s\n", 42, "42");
G_LocLogger(LL_ALWAYS, "always print this %d %s\n", 42, "42");
G_LocLogger(LL_ERROR, "this is an error %d %s\n", 42, "42");
G_LocLogger(LL_WARN, "this is a warning %d %s\n", 42, "42");
G_LocLogger(LL_INFO, "this is an info %d %s\n", 42, "42");
G_LocLogger(LL_DEBUG, "this is a debug message %d %s\n", 42, "42");
G_LocLogger(LL_TRACE, "this is a trace message %d %s\n", 42, "42");
}
/*
=================
G_Client_Command
@ -7832,6 +7849,9 @@ void G_Client_Command( int clientNum )
else if (Q_stricmp (cmd, "generatePrecacheFile") == 0) {
Cmd_GeneratePrecacheFile(ent);
}
else if (Q_stricmp (cmd, "testlogger") == 0) {
Cmd_TestLogger(ent);
}
else if (Q_strncmp (cmd, "\n", 1) == 0 || Q_strncmp (cmd, " ", 1) == 0 || Q_strncmp (cmd, "\0", 1) == 0) // sorry
(void)(0);
else

View file

@ -2317,6 +2317,7 @@ extern gentity_t g_entities[MAX_GENTITIES];
//extern int shaketimer; //Global shake timer varible //TiM: NOT NECESSARY!
extern int RPGEntityCount; //Global entity count varible
extern vmCvar_t g_logLevel;
extern vmCvar_t g_gametype;
extern vmCvar_t g_dedicated;
extern vmCvar_t g_cheats;

73
code/game/g_logger.c Normal file
View file

@ -0,0 +1,73 @@
#include "g_logger.h"
void QDECL G_Logger (int level, char* fmt, ...) {
va_list argptr;
char text[1024];
if(level > g_logLevel.integer && g_logLevel.integer != LL_ALWAYS) {
return;
}
va_start (argptr, fmt);
vsnprintf (text, sizeof(text), fmt, argptr);
va_end (argptr);
switch (level)
{
case LL_ERROR:
G_Printf(S_COLOR_RED "[game][error] %s", text);
break;
case LL_WARN:
G_Printf(S_COLOR_YELLOW "[game][warn] %s", text);
break;
case LL_INFO:
G_Printf("[game][info] %s", text);
break;
case LL_DEBUG:
G_Printf("[game][info] %s", text);
break;
case LL_TRACE:
G_Printf("[game][trace] %s", text);
break;
case LL_ALWAYS:
default:
G_Printf("[game] %s", text);
break;
}
}
void QDECL _G_LocLogger (const char* file, int line, int level, char* fmt, ...) {
va_list argptr;
char text[1024];
if(level > g_logLevel.integer && g_logLevel.integer != LL_ALWAYS) {
return;
}
va_start (argptr, fmt);
vsnprintf (text, sizeof(text), fmt, argptr);
va_end (argptr);
switch (level)
{
case LL_ERROR:
G_Printf(S_COLOR_RED "[game][error] %s:%d - ", file, line);
break;
case LL_WARN:
G_Printf(S_COLOR_YELLOW "[game][warn] %s:%d - ", file, line);
break;
case LL_INFO:
G_Printf("[game][info] %s:%d - ", file, line);
break;
case LL_DEBUG:
G_Printf("[game][info] %s:%d - ", file, line);
break;
case LL_TRACE:
G_Printf("[game][trace] %s:%d - ", file, line);
break;
case LL_ALWAYS:
default:
G_Printf("[game] %s:%d - ", file, line);
break;
}
}

19
code/game/g_logger.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef G_LOGGER_H_
#define G_LOGGER_H_
#include "g_local.h"
enum {
LL_ERROR,
LL_WARN,
LL_INFO,
LL_DEBUG,
LL_TRACE,
LL_ALWAYS
};
#define G_LocLogger(X,...) _G_LocLogger(__FILE__, __LINE__, X, __VA_ARGS__)
void QDECL G_Logger(int level, char* fmt, ...) __attribute__ ((format (printf, 2, 3)));
void QDECL _G_LocLogger(const char* file, int line, int level, char* fmt, ...) __attribute__ ((format (printf, 4, 5)));
#endif /* G_LOGGER_H_ */

View file

@ -40,6 +40,7 @@ rankNames_t g_rankNames[MAX_RANKS];
g_classData_t g_classData[MAX_CLASSES];
vmCvar_t g_logLevel;
vmCvar_t g_gametype;
vmCvar_t g_dmflags;
vmCvar_t g_password;
@ -472,7 +473,8 @@ static cvarTable_t gameCvarTable[] = {
{ &rpg_tr116Damage, "rpg_tr116Damage", "150", CVAR_ARCHIVE, 0, qfalse },
{ &rpg_photonDamage, "rpg_photonDamage", "140", CVAR_ARCHIVE, 0, qfalse },
{ &rpg_photonAltDamage, "rpg_photonAltDamage", "140", CVAR_ARCHIVE, 0, qfalse },
{ &g_developer, "g_developer", "0", CVAR_ARCHIVE, 0, qfalse }
{ &g_developer, "g_developer", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_logLevel, "g_loglevel", "1", CVAR_ARCHIVE, 0, qfalse }
};
static int gameCvarTableSize = (int)(sizeof( gameCvarTable ) / sizeof( gameCvarTable[0] ));

View file

@ -514,6 +514,7 @@
<ClInclude Include="g_sql.h" />
<ClInclude Include="g_team.h" />
<ClInclude Include="g_weapon.h" />
<ClInclude Include="g_logger.h" />
<ClInclude Include="inv.h" />
<ClInclude Include="lapi.h" />
<ClInclude Include="lauxlib.h" />

View file

@ -497,6 +497,9 @@
<ClInclude Include="memorypool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="g_logger.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="game.def">