| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- using System;
 
- namespace InABox.Core
 
- {
 
-     public enum LogType
 
-     {
 
-         Information,
 
-         Query,
 
-         Update,
 
-         Error,
 
-         /// <summary>
 
-         /// This log is an important notice that the system administrator should not ignore.
 
-         /// </summary>
 
-         Important
 
-     }
 
-     public delegate void LogEvent(LogType type, string userid, string message, Guid transaction);
 
-     public class Logger
 
-     {
 
-         public static event LogEvent OnLog;
 
-         public static Logger Main = new Logger(Guid.Empty);
 
-         public Guid Transaction { get; set; }
 
-         public Logger(Guid transaction)
 
-         {
 
-             Transaction = transaction;
 
-         }
 
-         public static Logger New() => new Logger(Guid.NewGuid());
 
-         public void Error(string message)
 
-         {
 
-             this.Send(LogType.Error, "", message);
 
-         }
 
-         public void Error(string userid, string message)
 
-         {
 
-             this.Send(LogType.Error, userid, message);
 
-         }
 
-         public void Info(string message)
 
-         {
 
-             this.Send(LogType.Information, "", message);
 
-         }
 
-         public void Info(string userid, string message)
 
-         {
 
-             this.Send(LogType.Information, userid, message);
 
-         }
 
-         public void Send(LogType logtype, string userid, string message)
 
-         {
 
-             OnLog?.Invoke(logtype, userid, message, Transaction);
 
-         }
 
-         public static void Send(LogType logtype, string userid, string message, Guid? transaction = null)
 
-         {
 
-             OnLog?.Invoke(logtype, userid, message, transaction ?? Guid.Empty);
 
-         }
 
-         public static void SendFormat(LogType logtype, string userid, string message, Guid? transaction, params object[] parameters)
 
-         {
 
-             OnLog?.Invoke(logtype, userid, string.Format(message, parameters), transaction ?? Guid.Empty);
 
-         }
 
-     }
 
- }
 
 
  |