protected virtual IEnumerable<String> BuildLogEntryFields(SchedulerEngineBase engine, EngineLogEntryType type, String additionalInfo)
		{
			yield return DateTime.Now.ToString("s");
			yield return engine.Name;
			yield return type.ToString();
			yield return WrapAsCsvValue(additionalInfo);
		}
		public void LogEngineMessage(SchedulerEngineBase engine, EngineLogEntryType type, String additionalInfo)
		{
			if (!this.ShouldLog(type)) { return; }
			var values = BuildLogEntryFields(engine, type, additionalInfo);
			var entry = String.Join(", ", values);

			WriteSchedulerMessage(type, PolishMessage(entry));
		}
 protected virtual void WriteSchedulerMessage(EngineLogEntryType type, string message)
 {
     //duplicate logged messages to console if working on console mode:
     if (Environment.UserInteractive)
     {
         Console.Write(message);
     }
     lock (EngineLogLock) { File.AppendAllText(this.EngineLogFile.FullName, message); }
 }
        public void LogEngineMessage(SchedulerEngineBase engine, EngineLogEntryType type, String additionalInfo)
        {
            if (!this.ShouldLog(type))
            {
                return;
            }
            var values = BuildLogEntryFields(engine, type, additionalInfo);
            var entry  = String.Join(", ", values);

            WriteSchedulerMessage(type, PolishMessage(entry));
        }
		protected virtual Boolean ShouldLog(EngineLogEntryType type)
		{
			return true;
		}
		protected virtual void WriteSchedulerMessage(EngineLogEntryType type, string message)
		{
			//duplicate logged messages to console if working on console mode:
			if (Environment.UserInteractive) { Console.Write(message); }
			lock (EngineLogLock) { File.AppendAllText(this.EngineLogFile.FullName, message); }
		}
        protected virtual IEnumerable <String> BuildLogEntryFields(SchedulerEngineBase engine, EngineLogEntryType type, String additionalInfo)
        {
            yield return(DateTime.Now.ToString("s"));

            yield return(engine.Name);

            yield return(type.ToString());

            yield return(WrapAsCsvValue(additionalInfo));
        }
 protected virtual Boolean ShouldLog(EngineLogEntryType type)
 {
     return(true);
 }