private void FtpClientOnLogEvent(FtpTraceLevel level, string message)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                return;
            }

            int indexOf = message.IndexOf("at System.Net.Sockets.Socket", StringComparison.Ordinal);

            if (indexOf >= 0)
            {
                message = message.Substring(0, indexOf).Trim();
            }

            const string messageTemplate = "{FtpMessage}";

            switch (level)
            {
            case FtpTraceLevel.Info:
                _logger?.Debug(messageTemplate, message);
                break;

            case FtpTraceLevel.Error:
                _logger?.Warning(messageTemplate, message);
                break;

            case FtpTraceLevel.Verbose:
                _logger?.Debug(messageTemplate, message);
                break;

            case FtpTraceLevel.Warn:
                _logger?.Warning(messageTemplate, message);
                break;
            }
        }
        /// <summary>
        /// Write to the TraceListeners
        /// </summary>
        /// <param name="eventType">The type of tracing event</param>
        /// <param name="message">A formattable string to write</param>
        public static void Write(FtpTraceLevel eventType, string message)
        {
#if CORE
#if DEBUG
            Debug.WriteLine(message);
#else
            Console.WriteLine(message);
#endif
#elif !CORE
            var diagTraceLvl = TraceLevelTranslation(eventType);
            if (m_prefix)
            {
                // if prefix is wanted then use TraceEvent()
                m_traceSource.TraceEvent(TraceLevelTranslation(eventType), 0, message);
            }
            else
            {
                // if prefix is NOT wanted then write manually
                EmitEvent(m_traceSource, TraceLevelTranslation(eventType), message);
            }
            if (m_flushOnWrite)
            {
                m_traceSource.Flush();
            }
#endif
        }
Exemple #3
0
        private void OnLogEvent(FtpTraceLevel ftpTraceLevel, string logMessage)
        {
            if (DebugLogs)
            {
                switch (ftpTraceLevel)
                {
                case FtpTraceLevel.Error:
                    Task.Error(logMessage);
                    break;

                case FtpTraceLevel.Verbose:
                    Task.Info(logMessage);
                    break;

                case FtpTraceLevel.Warn:
                    Task.Info(logMessage);
                    break;

                case FtpTraceLevel.Info:
                default:
                    Task.Info(logMessage);
                    break;
                }
            }
        }
 private void Client_Log(FtpTraceLevel arg1, string arg2)
 {
     if (arg1 != FtpTraceLevel.Verbose)
     {
         _log.AppendLine($"{DateTime.Now}\t{arg2}");
         RaisePropertyChanged(nameof(Log));
     }
 }
Exemple #5
0
		/// <summary>
		/// Log a message
		/// </summary>
		/// <param name="eventType">The type of tracing event</param>
		/// <param name="message">The message to write</param>
		public void LogLine(FtpTraceLevel eventType, string message) {
			// log to attached logger if given
			if (OnLogEvent != null) {
				OnLogEvent(eventType, message);
			}

			// log to system
			FtpTrace.WriteLine(eventType, message);
		}
Exemple #6
0
		/// <summary>
		/// Log a message, adding an automatic prefix to the message based on the `eventType`
		/// </summary>
		/// <param name="eventType">The type of tracing event</param>
		/// <param name="message">The message to write</param>
		public void LogStatus(FtpTraceLevel eventType, string message) {
			// add prefix
			message = TraceLevelPrefix(eventType) + message;

			// log to attached logger if given
			if (OnLogEvent != null) {
				OnLogEvent(eventType, message);
			}

			// log to system
			FtpTrace.WriteLine(eventType, message);
		}
Exemple #7
0
		private static string TraceLevelPrefix(FtpTraceLevel level) {
			switch (level) {
				case FtpTraceLevel.Verbose:
					return "Status:   ";

				case FtpTraceLevel.Info:
					return "Status:   ";

				case FtpTraceLevel.Warn:
					return "Warning:  ";

				case FtpTraceLevel.Error:
					return "Error:    ";
			}

			return "Status:   ";
		}
        private static TraceEventType TraceLevelTranslation(FtpTraceLevel level)
        {
            switch (level)
            {
            case FtpTraceLevel.Verbose:
                return(TraceEventType.Verbose);

            case FtpTraceLevel.Info:
                return(TraceEventType.Information);

            case FtpTraceLevel.Warn:
                return(TraceEventType.Warning);

            case FtpTraceLevel.Error:
                return(TraceEventType.Error);

            default:
                return(TraceEventType.Verbose);
            }
        }
Exemple #9
0
        /// <summary>
        /// Write to the TraceListeners
        /// </summary>
        /// <param name="eventType">The type of tracing event</param>
        /// <param name="message">A formattable string to write</param>
        public static void Write(FtpTraceLevel eventType, string message)
        {
            if (!EnableTracing)
            {
                return;
            }
#if CORE
#if DEBUG
            Debug.WriteLine(message);
#else
            if (m_LogToConsole)
            {
                Console.WriteLine(message);
            }
            if (m_LogToFile != null)
            {
                File.AppendAllText(m_LogToFile, message + "\n");
            }
#endif
#elif !CORE
            if (m_prefix)
            {
                // if prefix is wanted then use TraceEvent()
                m_traceSource.TraceEvent(TraceLevelTranslation(eventType), 0, message);
            }
            else
            {
                // if prefix is NOT wanted then write manually
                EmitEvent(m_traceSource, TraceLevelTranslation(eventType), message);
            }
            if (m_flushOnWrite)
            {
                m_traceSource.Flush();
            }
#endif
        }
Exemple #10
0
 /// <summary>
 /// Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
 /// </summary>
 /// <param name="eventType">The type of tracing event</param>
 /// <param name="message">The message to write</param>
 public static void WriteStatus(FtpTraceLevel eventType, object message)
 {
     Write(eventType, TraceLevelPrefix(eventType) + message.ToString());
 }
Exemple #11
0
 /// <summary>
 /// Write to the TraceListeners
 /// </summary>
 /// <param name="eventType">The type of tracing event</param>
 /// <param name="message">The message to write</param>
 public static void WriteLine(FtpTraceLevel eventType, object message)
 {
     Write(eventType, message.ToString());
 }
 private void LogMessage(FtpTraceLevel arg1, string arg2)
 {
     Log?.Invoke(arg1, arg2);
 }