mirror of
https://github.com/mm201/pkmn-classic-framework.git
synced 2026-03-22 01:44:20 -05:00
103 lines
2.9 KiB
C#
103 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace PkmnFoundations.Support
|
|
{
|
|
public static class LogHelper
|
|
{
|
|
static LogHelper()
|
|
{
|
|
Type = EventLogTypes.StandardError;
|
|
}
|
|
|
|
public static void Write(String message, EventLogEntryType type, int eventID, ushort category, byte[] rawData)
|
|
{
|
|
switch (Type)
|
|
{
|
|
case EventLogTypes.StandardOutput:
|
|
Console.WriteLine(message);
|
|
break;
|
|
case EventLogTypes.StandardError:
|
|
Console.Error.WriteLine(message);
|
|
break;
|
|
case EventLogTypes.File:
|
|
try
|
|
{
|
|
using (FileStream fs = File.Open(m_filename, FileMode.Append))
|
|
{
|
|
StreamWriter sw = new StreamWriter(fs);
|
|
sw.Write("{0}\t{1}\n", DateTime.Now, message);
|
|
sw.Close();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine("Can't open logfile at {0}.\nException: {1}\nMessage: {2}", m_filename, ex.Message, message);
|
|
}
|
|
break;
|
|
case EventLogTypes.Windows:
|
|
m_event_log.WriteEntry(message, type, eventID, (short)category, rawData);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public static void Write(String message, EventLogEntryType type)
|
|
{
|
|
Write(message, type, 0, 0, null);
|
|
}
|
|
|
|
public static void Write(String message)
|
|
{
|
|
Write(message, EventLogEntryType.Information, 0, 0, null);
|
|
}
|
|
|
|
public static void UseStandardOutput()
|
|
{
|
|
Type = EventLogTypes.StandardOutput;
|
|
m_event_log = null;
|
|
}
|
|
|
|
public static void UseStandardError()
|
|
{
|
|
Type = EventLogTypes.StandardError;
|
|
m_event_log = null;
|
|
}
|
|
|
|
public static void UseFile(String filename)
|
|
{
|
|
if (filename == null) throw new ArgumentNullException("filename");
|
|
Type = EventLogTypes.File;
|
|
m_filename = filename;
|
|
m_event_log = null;
|
|
}
|
|
|
|
public static void UseEventLog(EventLog event_log)
|
|
{
|
|
if (event_log == null) throw new ArgumentNullException("event_log");
|
|
Type = EventLogTypes.Windows;
|
|
m_event_log = event_log;
|
|
}
|
|
|
|
public static EventLogTypes Type
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
private static String m_filename;
|
|
private static EventLog m_event_log;
|
|
}
|
|
|
|
public enum EventLogTypes
|
|
{
|
|
StandardOutput,
|
|
StandardError,
|
|
File,
|
|
Windows
|
|
}
|
|
}
|