public ProcessLog log(string message, string eventtype = "default", string source = "self", ProcessLogMessageType type = ProcessLogMessageType.Debug, bool onlyself = false)
 {
     if(Writer!=null) {
         Writer.WriteLine("{0} {1} {2} {3} {4}",DateTime.Now,source,type,eventtype,message);
     }
     return null;
 }
 private ConsoleColor getcolor(ProcessLogMessageType type) {
     switch (type) {
         case ProcessLogMessageType.None:
             return ConsoleColor.Gray;
         case ProcessLogMessageType.Debug:
             return ConsoleColor.Gray;
         case ProcessLogMessageType.Trace:
             return ConsoleColor.White;
         case ProcessLogMessageType.Info:
             return ConsoleColor.Yellow;
         case ProcessLogMessageType.Warn:
             return ConsoleColor.Cyan;
         case ProcessLogMessageType.Error:
             return ConsoleColor.Red;
         case ProcessLogMessageType.Fatal:
             return ConsoleColor.Magenta;
         default :
             return ConsoleColor.Gray;     
     }
 }