ryujinx-mirror/Ryujinx/Logging.cs
Ac_K 5ecfb5c657 Add internal Config support (#5)
* Add internal Logging support

Add class Logging.
Replace all Console.WriteLine() to looks better.
Add informations inside Windows Titles.

* Revert "Add internal Logging support"

This reverts commit 275d363aaf30011f238010572cfdb320bd7b627f.

* Add internal Logging support

Add Logging Class.
Replace all Console.WriteLine() to looks better.
Add debug informations of IpcMessage.
Add informations inside Windows Titles.

* Add internal Logging support2

Add Logging Class.
Replace all Console.WriteLine() to looks better.
Add debug informations of IpcMessage.
Add informations inside Windows Titles.

* Add internal Config support

Add Config Class.
Add Ryujinx.conf file (Ini file).
Use the Config Class inside Logging.

* Add internal Config support

Add Config Class.
Add Ryujinx.conf file (Ini file).
Use the Config Class inside Logging.
2018-02-08 23:47:32 -03:00

128 lines
3.7 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.Text;
namespace Ryujinx
{
public static class Logging
{
private static Stopwatch ExecutionTime = new Stopwatch();
private static string LogFileName = "Ryujinx.log";
public static bool EnableInfo = Config.LoggingEnableInfo;
public static bool EnableTrace = Config.LoggingEnableTrace;
public static bool EnableDebug = Config.LoggingEnableDebug;
public static bool EnableWarn = Config.LoggingEnableWarn;
public static bool EnableError = Config.LoggingEnableError;
public static bool EnableFatal = Config.LoggingEnableFatal;
public static bool EnableLogFile = Config.LoggingEnableLogFile;
static Logging()
{
ExecutionTime.Start();
if (File.Exists(LogFileName)) File.Delete(LogFileName);
}
public static string GetExecutionTime()
{
return ExecutionTime.ElapsedMilliseconds.ToString().PadLeft(8, '0') + "ms";
}
private static void LogFile(string Message)
{
if (EnableLogFile)
{
using (StreamWriter Writer = File.AppendText(LogFileName))
{
Writer.WriteLine(Message);
}
}
}
public static void Info(string Message)
{
if (EnableInfo)
{
string Text = $"{GetExecutionTime()} | INFO > {Message}";
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
public static void Trace(string Message)
{
if (EnableTrace)
{
string Text = $"{GetExecutionTime()} | TRACE > {Message}";
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
public static void Debug(string Message)
{
if (EnableDebug)
{
string Text = $"{GetExecutionTime()} | DEBUG > {Message}";
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
public static void Warn(string Message)
{
if (EnableWarn)
{
string Text = $"{GetExecutionTime()} | WARN > {Message}";
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
public static void Error(string Message)
{
if (EnableError)
{
string Text = $"{GetExecutionTime()} | ERROR > {Message}";
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
public static void Fatal(string Message)
{
if (EnableFatal)
{
string Text = $"{GetExecutionTime()} | FATAL > {Message}";
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine(Text.PadLeft(Text.Length + 1, ' '));
Console.ResetColor();
LogFile(Text);
}
}
}
}