Initial Check-in for Alpha 2.0 source code.
Includes working Telnet server, working command engine and Character code.
This commit is contained in:
parent
224f754514
commit
3d8051c995
28 changed files with 1495 additions and 0 deletions
101
MudEngine/WinPC_Engine/Core/Logger.cs
Normal file
101
MudEngine/WinPC_Engine/Core/Logger.cs
Normal file
|
@ -0,0 +1,101 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO.IsolatedStorage;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace MudEngine.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Public Engine Logging Class.
|
||||
/// </summary>
|
||||
public static class Logger
|
||||
{
|
||||
/// <summary>
|
||||
/// The Log Filename for the engine log.
|
||||
/// </summary>
|
||||
public static string LogFilename { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets if the Logger is enabled or disabled.
|
||||
/// </summary>
|
||||
public static Boolean Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets if the logger will output it's information to the Console.
|
||||
/// </summary>
|
||||
public static Boolean ConsoleOutPut { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Clears the queued log messages from cache
|
||||
/// </summary>
|
||||
public static void ClearLog()
|
||||
{
|
||||
//If the log file exists, delete it.
|
||||
if (String.IsNullOrEmpty(LogFilename))
|
||||
LogFilename = "Engine.Log";
|
||||
|
||||
if (System.IO.File.Exists(LogFilename))
|
||||
System.IO.File.Delete(LogFilename);
|
||||
|
||||
//Clear the cache.
|
||||
_Messages.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes a single line to the engine log file.
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public static void WriteLine(String message)
|
||||
{
|
||||
//Only write to log if enabled.
|
||||
if (!Enabled)
|
||||
return;
|
||||
|
||||
//Make sure we have a valid filename
|
||||
if (String.IsNullOrEmpty(LogFilename))
|
||||
LogFilename = "Engine.Log";
|
||||
|
||||
//Ensure that the log messages cache is not null
|
||||
if (_Messages == null)
|
||||
_Messages = new List<string>();
|
||||
|
||||
//Get the current time and format it
|
||||
String Time = DateTime.Now.ToString("h:mm:ss:ff tt");
|
||||
|
||||
//Output to console if enabled.
|
||||
if (ConsoleOutPut)
|
||||
Console.WriteLine(Time + ": " + message);
|
||||
|
||||
//Try to write the message to the log file.
|
||||
try
|
||||
{
|
||||
using (System.IO.StreamWriter file = new System.IO.StreamWriter(LogFilename, true))
|
||||
{
|
||||
//Write the message to file
|
||||
file.WriteLine(Time + ": " + message);
|
||||
//Add it to the messages cache.
|
||||
_Messages.Add(Time + ": " + message);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw new Exception("Unable to write message (" + message + ") to log file (" + LogFilename + ").");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns an array of messages that have been queued in the log cache.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static String[] GetMessages()
|
||||
{
|
||||
if (_Messages == null)
|
||||
return new string[0];
|
||||
else
|
||||
return _Messages.ToArray();
|
||||
}
|
||||
|
||||
private static List<String> _Messages;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue