public static void AddTarget(LogTarget target)
 {
     lock (logTargets) logTargets.Add(target);
 }
 public LogEntry(object message, object args, SendingLogger logger = SendingLogger.CONSOLE, ConsoleColor? color = null)
 {
     this.target = null;
     this.thread = Thread.CurrentThread;
     this.time = DateTime.Now;
     this.message = message;
     this.args = args;
     this.channel = null;
     this.logger = logger;
     this.color = color;
 }
 public static void RemoveTarget(LogTarget target)
 {
     lock (logTargets) logTargets.Remove(target);
 }
 static void Send(LogTarget target, OutputEntry output)
 {
     if (target == null)
     {
         lock (logTargets)
             foreach (var tar in logTargets)
             {
                 tar.Send(output);
             }
     }
     else
         target.Send(output);
 }
        public static void OpenLogFile(string path)
        {
            var newpath = path;

            if (LogRotation)
            {
                var absolute = Path.GetFullPath (path);
                var dir = Path.GetDirectoryName (absolute);
                var name = Path.GetFileNameWithoutExtension (path);
                var ext = Path.GetExtension (path);
                newpath = Path.Combine (dir, String.Format ("{0}_{1:yyyyMMdd_HHmm}{2}", name, DateTime.Now, ext));
            }

            logFile = new FileOutputTarget(newpath);

            lock (logTargets)
                logTargets.Add(logFile);

            Log("Logging started to file \"{0}\".", newpath);
        }