Files
2024-06-26 10:30:00 +09:00

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();
}
}
}