84 lines
2.9 KiB
C#
84 lines
2.9 KiB
C#
using log4net;
|
|
using System;
|
|
|
|
namespace SystemX.Net.Platform.Common.Util
|
|
{
|
|
public class LogMessage
|
|
{
|
|
public enum LogMessageLevel
|
|
{
|
|
NONE = 0,
|
|
FATAL,
|
|
DEBUG,
|
|
INFO,
|
|
LAST
|
|
};
|
|
|
|
public delegate void MessageEventHandlerOutput(string strMessage, ConsoleColor csColor = ConsoleColor.White, LogMessageLevel logLevel = LogMessageLevel.DEBUG);
|
|
|
|
static public class MessageOutput
|
|
{
|
|
private static ILog logger => Log4NetWrapper.Logger;
|
|
static public LogMessageLevel PrintLogLevel { get; set; } = LogMessageLevel.DEBUG;
|
|
static public MessageEventHandlerOutput UEventOutput;
|
|
static public void ConsoleWrite(string strMessage, ConsoleColor csColor = ConsoleColor.White, LogMessageLevel logLevel = LogMessageLevel.DEBUG)
|
|
{
|
|
try
|
|
{
|
|
if (PrintLogLevel >= logLevel)
|
|
{
|
|
Console.ForegroundColor = csColor;
|
|
Console.WriteLine(strMessage);
|
|
Console.ResetColor();
|
|
UEventOutput?.Invoke(strMessage, csColor, logLevel);
|
|
switch (logLevel)
|
|
{
|
|
case LogMessageLevel.FATAL:
|
|
logger.Error(strMessage);
|
|
|
|
//WriteEventLogEntry(strMessage);
|
|
break;
|
|
case LogMessageLevel.DEBUG:
|
|
logger.Debug(strMessage);
|
|
break;
|
|
default:
|
|
logger.Info(strMessage);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
catch (System.Exception ex)
|
|
{
|
|
Console.WriteLine(ex.ToString());
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void WriteEventLogEntry(string message)
|
|
{
|
|
// Create an instance of EventLog
|
|
System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog();
|
|
|
|
// Check if the event source exists. If not create it.
|
|
if (!System.Diagnostics.EventLog.SourceExists("CP-ServerX"))
|
|
{
|
|
System.Diagnostics.EventLog.CreateEventSource("CP-ServerX", "SystemX");
|
|
}
|
|
|
|
// Set the source name for writing log entries.
|
|
eventLog.Source = "CP-ServerX";
|
|
|
|
// Create an event ID to add to the event log
|
|
int eventID = 2051;
|
|
|
|
// Write an entry to the event log.
|
|
eventLog.WriteEntry(message,
|
|
System.Diagnostics.EventLogEntryType.Error,
|
|
eventID);
|
|
|
|
// Close the Event Log
|
|
eventLog.Close();
|
|
}
|
|
}
|
|
}
|