using System;
using System.IO;
using Server;
using Server.Network;
using System.Collections;
namespace Server.Misc
{
public class LogRecorder
{
public static void Initialize()
{
//Login & Logout
EventSink.Login += new LoginEventHandler( EventSink_Login );
EventSink.Logout += new LogoutEventHandler( EventSink_Logout );
EventSink.Speech += new SpeechEventHandler( OnSpeech );
if ( !Directory.Exists( "logs" ) ) Directory.CreateDirectory( "logs" );
if ( !Directory.Exists( "logs/Login" ) ) Directory.CreateDirectory( "logs/Login" );
if ( !Directory.Exists( "logs/Logout" ) ) Directory.CreateDirectory( "logs/Logout" );
if ( !Directory.Exists( "logs/Chat" ) ) Directory.CreateDirectory( "logs/Chat" );
}
private static void EventSink_Login( LoginEventArgs args )
{
Stream fileStream = null;
StreamWriter writeAdapter = null;
Mobile m = args.Mobile;
try
{
fileStream = File.Open("logs/Login/"+args.Mobile.Name+".log", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
writeAdapter = new StreamWriter(fileStream);
writeAdapter.WriteLine(args.Mobile.Name + " " + DateTime.Now + " Login" );
writeAdapter.Close();
}
catch
{
Console.WriteLine( "Record Error......{0} Login",args.Mobile.Name );
return;
}
}
private static void EventSink_Logout( LogoutEventArgs args )
{
Stream fileStream = null;
StreamWriter writeAdapter = null;
Mobile m = args.Mobile;
try
{
fileStream = File.Open("logs/Logout/"+args.Mobile.Name+".log", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
writeAdapter = new StreamWriter(fileStream);
writeAdapter.WriteLine(args.Mobile.Name + " " + DateTime.Now + " Logout" );
writeAdapter.Close();
}
catch
{
Console.WriteLine( "Record Error......{0} Logout",args.Mobile.Name );
return;
}
}
public static void OnSpeech( SpeechEventArgs e )
{
string msg = String.Format( "({0}): {1}", e.Mobile.Name, e.Speech );
Stream fileStream = null;
StreamWriter writeAdapter = null;
try
{
fileStream = File.Open( String.Format( "logs/chat/{0}.log", DateTime.Now.ToLongDateString() ), FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
writeAdapter = new StreamWriter(fileStream);
writeAdapter.WriteLine("< " + msg + " >" + " at " + DateTime.Now );
writeAdapter.Close();
Console.WriteLine("Speech: " + msg + " at " + DateTime.Now );
}
catch
{
Console.WriteLine( "Record Error......{0}",msg );
return;
}
}
}
}