Engine
Class StatLogFile

source: c:\runehov\Engine\Classes\StatLogFile.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.StatLog
            |
            +--Engine.StatLogFile
Direct Known Subclasses:None

class StatLogFile
extends Engine.StatLog

//============================================================================= // Logs game events for stat collection // // Logs to a file. //=============================================================================
Variables
 int LogAr
           C++ FArchive*.
 string StatLogFile
           C++ FArchive*.
 string StatLogFinal
           C++ FArchive*.
 bool bWatermark


Function Summary
 void CloseLog()
 void FileFlush()
 void FileLog(string EventString)
 void FlushLog()
 void GetChecksum(out string)
 string GetLogFileName()
     
// Return a logfile name if relevant.
 void LogEventString(string EventString)
 void LogGameEnd(string Reason)
 void LogPlayerConnect(Pawn Player, optional string)
 void OpenLog()
     
// File Manipulation
 void StartLog()
     
// Logging.
 void StopLog()
 void Watermark(string EventString)



Source Code


00001	//=============================================================================
00002	// Logs game events for stat collection
00003	//
00004	// Logs to a file.
00005	//=============================================================================
00006	class StatLogFile extends StatLog
00007		native;
00008	
00009	var bool bWatermark;
00010	
00011	// Internal
00012	var int LogAr; // C++ FArchive*.
00013	
00014	// Configs
00015	var string StatLogFile;
00016	var string StatLogFinal;
00017	
00018	// File Manipulation
00019	native final function OpenLog();
00020	native final function CloseLog();
00021	native final function Watermark( string EventString );
00022	native final function GetChecksum( out string Checksum );
00023	
00024	native final function FileFlush();
00025	native final function FileLog( string EventString );
00026	
00027	// Logging.
00028	function StartLog()
00029	{
00030		local string FileName;
00031		local string AbsoluteTime;
00032	
00033		SaveConfig();
00034	
00035		AbsoluteTime = GetShortAbsoluteTime();
00036		if (!bWorld)
00037		{
00038			FileName = LocalLogDir$"/"$GameName$"."$LocalStandard$"."$AbsoluteTime$"."$Level.Game.GetServerPort();
00039			StatLogFile = FileName$".tmp";
00040			StatLogFinal = FileName$".log";
00041		} else {
00042			FileName = WorldLogDir$"/"$GameName$"."$WorldStandard$"."$AbsoluteTime$"."$Level.Game.GetServerPort();
00043			StatLogFile = FileName$".tmp";
00044			StatLogFinal = FileName$".log";
00045			bWatermark = True;
00046		}
00047	
00048		OpenLog();
00049	}
00050	
00051	function StopLog()
00052	{
00053		FlushLog();
00054		CloseLog();
00055	}
00056	
00057	function FlushLog()
00058	{
00059		FileFlush();
00060	}
00061	
00062	function LogEventString( string EventString )
00063	{
00064		if( bWatermark )
00065			Watermark( EventString );
00066		FileLog( EventString );
00067		FlushLog();
00068	}
00069	
00070	// Return a logfile name if relevant.
00071	function string GetLogFileName()
00072	{
00073		return StatLogFinal;
00074	}
00075	
00076	function LogPlayerConnect(Pawn Player, optional string Checksum)
00077	{
00078	
00079	
00080		if( bWorld )
00081		{
00082			if( Player.PlayerReplicationInfo.bIsABot )
00083				Checksum = "IsABot";
00084			if (Player.IsA('PlayerPawn'))
00085				LogEventString( GetTimeStamp()$Chr(9)$"player"$Chr(9)$"Connect"$Chr(9)$Player.PlayerReplicationInfo.PlayerName$Chr(9)$Player.PlayerReplicationInfo.PlayerID$Chr(9)$PlayerPawn(Player).bAdmin$Chr(9)$Checksum );
00086			else
00087				LogEventString( GetTimeStamp()$Chr(9)$"player"$Chr(9)$"Connect"$Chr(9)$Player.PlayerReplicationInfo.PlayerName$Chr(9)$Player.PlayerReplicationInfo.PlayerID$Chr(9)$False$Chr(9)$Checksum );
00088	
00089			LogPlayerInfo( Player );
00090		}
00091		else Super.LogPlayerConnect( Player, Checksum );
00092	}
00093	
00094	function LogGameEnd( string Reason )
00095	{
00096		local string Checksum;
00097	
00098		if( bWorld )
00099		{
00100			bWatermark = False;
00101			GetChecksum( Checksum );
00102			LogEventString(GetTimeStamp()$Chr(9)$"game_end"$Chr(9)$Reason$Chr(9)$Checksum$"");
00103		}
00104		else Super.LogGameEnd(Reason);
00105	}
00106	
00107	defaultproperties
00108	{
00109	     StatLogFile="../Logs/unreal.ngStats.Unknown.log"
00110	}

End Source Code