servuo/Server/ExceptionLogging.cs
VitaNex f840e50340 Updated .editorconfig file with advanced configuration settings that will help maintain user code style and best practices with most IDE's.
Complete core housekeeping operation using "Profile 1" with new .editorconfig settings.
2021-01-15 12:51:10 -08:00

62 lines
1.5 KiB
C#

using System;
using System.IO;
namespace Server.Diagnostics
{
public class ExceptionLogging
{
public static string LogDirectory { get; set; }
private static StreamWriter _Output;
public static StreamWriter Output
{
get
{
if (_Output == null)
{
_Output = new StreamWriter(Path.Combine(LogDirectory, String.Format("{0}.log", DateTime.UtcNow.ToLongDateString())), true)
{
AutoFlush = true
};
_Output.WriteLine("##############################");
_Output.WriteLine("Exception log started on {0}", DateTime.UtcNow);
_Output.WriteLine();
}
return _Output;
}
}
static ExceptionLogging()
{
var directory = Path.Combine(Core.BaseDirectory, "Logs/Exceptions");
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
LogDirectory = directory;
}
public static void LogException(Exception e)
{
Utility.WriteConsoleColor(ConsoleColor.Red, "Caught Exception:");
Utility.WriteConsoleColor(ConsoleColor.DarkRed, e.ToString());
Output.WriteLine("Exception Caught: {0}", DateTime.UtcNow);
Output.WriteLine(e);
Output.WriteLine();
}
public static void LogException(Exception e, string arg)
{
Utility.WriteConsoleColor(ConsoleColor.Red, "Caught Exception: {0}", arg);
Utility.WriteConsoleColor(ConsoleColor.DarkRed, e.ToString());
Output.WriteLine("Exception Caught: {0}", DateTime.UtcNow);
Output.WriteLine(e);
Output.WriteLine();
}
}
}