init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
216
Framework/Logging/ConsoleLogWriter.cs
Normal file
216
Framework/Logging/ConsoleLogWriter.cs
Normal file
|
@ -0,0 +1,216 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Kreta.Framework.Logging
|
||||
{
|
||||
/// <summary>
|
||||
/// Konzol naplóvezető.
|
||||
/// </summary>
|
||||
public sealed class ConsoleLogWriter : LogWriterBase
|
||||
{
|
||||
const ConsoleColor _defaultConsoleColor = ConsoleColor.Gray;
|
||||
const ConsoleColor _entrySeparatorColor = ConsoleColor.Cyan;
|
||||
const string _entrySeparator = ">> ";
|
||||
|
||||
static readonly object _syncRoot = new object();
|
||||
|
||||
static ConsoleLogWriter()
|
||||
{
|
||||
SetDebug();
|
||||
}
|
||||
|
||||
[Conditional("DEBUG")]
|
||||
static void SetDebug()
|
||||
{
|
||||
DebugEnabled = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Visszaadja a naplózási szinthez tartozó színt.
|
||||
/// </summary>
|
||||
/// <param name="level">A naplózási szint</param>
|
||||
/// <returns></returns>
|
||||
static ConsoleColor GetConsoleForegroundColor(LogLevel level)
|
||||
{
|
||||
switch (level)
|
||||
{
|
||||
case LogLevel.DEBUG:
|
||||
{
|
||||
return ConsoleColor.Gray;
|
||||
}
|
||||
case LogLevel.INFO:
|
||||
{
|
||||
return ConsoleColor.Green;
|
||||
}
|
||||
case LogLevel.WARNING:
|
||||
{
|
||||
return ConsoleColor.Yellow;
|
||||
}
|
||||
case LogLevel.ERROR:
|
||||
{
|
||||
return ConsoleColor.Red;
|
||||
}
|
||||
case LogLevel.FATAL:
|
||||
{
|
||||
return ConsoleColor.Magenta;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return _defaultConsoleColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Konzolra és a Debug-ra írja a megadott szöveget. Sortöréssel.
|
||||
/// </summary>
|
||||
/// <param name="messageText">A kiírandó szöveg</param>
|
||||
/// <param name="level">A naplózási szint</param>
|
||||
public static void WriteLine(string messageText, LogLevel level)
|
||||
{
|
||||
WriteLineToDebug(messageText, level);
|
||||
WriteLineToConsole(messageText, level, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Konzolra és a Debug-ra írja a megadott szöveget.
|
||||
/// </summary>
|
||||
/// <param name="messageText">A kiírandó szöveg</param>
|
||||
/// <param name="level">A naplózási szint</param>
|
||||
public static void Write(string messageText, LogLevel level)
|
||||
{
|
||||
WriteToDebug(messageText, level);
|
||||
WriteToConsole(messageText, level);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Konzolra ír egy üzenetet. Sortöréssel
|
||||
/// </summary>
|
||||
/// <param name="messageText">Az üzenet szövege</param>
|
||||
public static void WriteLine(string messageText)
|
||||
{
|
||||
WriteLine(messageText, LogLevel.UNKNOWN);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Konzolra ír egy üzenetet.
|
||||
/// </summary>
|
||||
/// <param name="messageText">Az üzenet szövege</param>
|
||||
public static void Write(string messageText)
|
||||
{
|
||||
Write(messageText, LogLevel.UNKNOWN);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Naplóba vezeti az üzenetet.
|
||||
/// </summary>
|
||||
/// <param name="message">A naplóba vezetendő üzenet</param>
|
||||
protected override Guid? DoLog(ILogMessage message)
|
||||
{
|
||||
string messagetext = LogUtil.FormatMessageCompact(message);
|
||||
WriteLineToDebug(messagetext, message.Level);
|
||||
WriteLineToConsole(messagetext, message.Level, true);
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override void DoLog(ILogMessage message, Guid logId)
|
||||
{
|
||||
DoLog(message);
|
||||
}
|
||||
|
||||
#region inneroperations
|
||||
|
||||
static void WriteToConsole(string messagetext, LogLevel level)
|
||||
{
|
||||
if (!ConsoleEnabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
lock (_syncRoot)
|
||||
{
|
||||
Console.ForegroundColor = GetConsoleForegroundColor(level);
|
||||
Console.WriteLine(messagetext);
|
||||
Console.ForegroundColor = _defaultConsoleColor;
|
||||
}
|
||||
}
|
||||
|
||||
static void WriteLineToConsole(string messagetext, LogLevel level, bool islog)
|
||||
{
|
||||
if (!ConsoleEnabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
lock (_syncRoot)
|
||||
{
|
||||
if (islog)
|
||||
{
|
||||
Console.ForegroundColor = _entrySeparatorColor;
|
||||
Console.Write(_entrySeparator);
|
||||
}
|
||||
Console.ForegroundColor = GetConsoleForegroundColor(level);
|
||||
Console.WriteLine(messagetext);
|
||||
Console.ForegroundColor = _defaultConsoleColor;
|
||||
}
|
||||
}
|
||||
|
||||
static void WriteToDebug(string messagetext, LogLevel level)
|
||||
{
|
||||
if (!DebugEnabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (level)
|
||||
{
|
||||
case LogLevel.DEBUG:
|
||||
Debug.Write(messagetext);
|
||||
break;
|
||||
case LogLevel.ERROR:
|
||||
case LogLevel.FATAL:
|
||||
Trace.TraceError(messagetext);
|
||||
break;
|
||||
case LogLevel.WARNING:
|
||||
Trace.TraceWarning(messagetext);
|
||||
break;
|
||||
default:
|
||||
Trace.TraceInformation(messagetext);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void WriteLineToDebug(string messagetext, LogLevel level)
|
||||
{
|
||||
if (!DebugEnabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (level)
|
||||
{
|
||||
case LogLevel.DEBUG:
|
||||
Debug.WriteLine(messagetext);
|
||||
break;
|
||||
case LogLevel.ERROR:
|
||||
case LogLevel.FATAL:
|
||||
Trace.TraceError(messagetext);
|
||||
break;
|
||||
case LogLevel.WARNING:
|
||||
Trace.TraceWarning(messagetext);
|
||||
break;
|
||||
default:
|
||||
Trace.TraceInformation(messagetext);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Engedélyezi vagy tiltja a konzolra való naplózást. Alapértelmezésben tiltott.
|
||||
/// </summary>
|
||||
public static bool ConsoleEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Engedélyezi vagy tiltja a debug-ra való naplózást. Alapértelmezésben tiltott.
|
||||
/// </summary>
|
||||
public static bool DebugEnabled { get; set; }
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue