Ejemplo n.º 1
0
        /// <summary>
        /// Log string resolve
        /// </summary>
        /// <param name="value"></param>
        public void OnNext(LineString value)
        {
            // Get reference
            var _logger = logger;

            // Is disposed?
            if (_logger == null)
            {
                return;
            }
            // Get severity
            LineStatusSeverity severity = value.Severity;

            // Severity under threshold?
            if (severity < this.severity)
            {
                return;
            }
            // Write status
            if (value.Exception == null)
            {
                _logger.WriteLine(value.DebugInfo);
            }
            else
            {
                _logger.WriteLine("{0} {1}: {2}", value.DebugInfo, value.Exception.GetType().Name, value.Exception.Message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Log string
        /// </summary>
        /// <param name="value"></param>
        public void OnNext(LineString value)
        {
            // Get reference
            var _logger = logger;

            // Is disposed?
            if (_logger == null)
            {
                return;
            }
            // Get severity
            LineStatusSeverity severity = value.Severity;

            // Write status
            if (_logger.IsEnabled(LogLevel.Trace) && severity == LineStatusSeverity.Ok)
            {
                _logger.LogInformation(value.Exception, value.DebugInfo); return;
            }
            if (_logger.IsEnabled(LogLevel.Warning) && severity == LineStatusSeverity.Warning)
            {
                _logger.LogWarning(value.Exception, value.DebugInfo); return;
            }
            if (_logger.IsEnabled(LogLevel.Error) && severity >= LineStatusSeverity.Error)
            {
                _logger.LogError(value.Exception, value.DebugInfo); return;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Log string
        /// </summary>
        /// <param name="value"></param>
        public void OnNext(LineResourceBytes value)
        {
            // Get reference
            var _logger = logger;

            // Is disposed?
            if (_logger == null)
            {
                return;
            }
            // Get severity
            LineStatusSeverity severity = value.Severity;

            // Write status
            if (severity == LineStatusSeverity.Ok && _logger.IsInfoEnabled)
            {
                _logger.Info(value.Exception, value.DebugInfo); return;
            }
            if (severity == LineStatusSeverity.Warning && _logger.IsWarnEnabled)
            {
                _logger.Warn(value.Exception, value.DebugInfo); return;
            }
            if (severity >= LineStatusSeverity.Error && _logger.IsErrorEnabled)
            {
                _logger.Error(value.Exception, value.DebugInfo); return;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Log resource resolve
        /// </summary>
        /// <param name="value"></param>
        public void OnNext(LineResourceStream value)
        {
            if (disposed)
            {
                return;
            }
            // Get severity
            LineStatusSeverity severity = value.Severity;

            // Threshold
            if (severity < this.severity)
            {
                return;
            }
            // Write status
            if (value.Exception == null)
            {
                // No exception
                switch (severity)
                {
                case LineStatusSeverity.Ok:
                    Trace.TraceInformation(value.DebugInfo);
                    return;

                case LineStatusSeverity.Warning:
                    Trace.TraceWarning(value.DebugInfo);
                    return;

                case LineStatusSeverity.Error:
                case LineStatusSeverity.Failed:
                    Trace.TraceError(value.DebugInfo);
                    return;
                }
            }
            else
            {
                // With exception
                switch (severity)
                {
                case LineStatusSeverity.Ok:
                    Trace.TraceInformation("{0} {1}: {2}", value.DebugInfo, value.Exception.GetType().Name, value.Exception);
                    return;

                case LineStatusSeverity.Warning:
                    Trace.TraceWarning("{0} {1}: {2}", value.DebugInfo, value.Exception.GetType().Name, value.Exception);
                    return;

                case LineStatusSeverity.Error:
                case LineStatusSeverity.Failed:
                    Trace.TraceError("{0} {1}: {2}", value.DebugInfo, value.Exception.GetType().Name, value.Exception);
                    return;
                }
            }
        }
        /// <summary>
        /// Returns whether the specified status severity should use a custom response.
        /// </summary>
        /// <param name="statusSeverity">The status severity value.</param>
        /// <returns>
        /// <see langword="true"/> if the status should use a custom response; otherwise <see langword="false"/>.
        /// </returns>
        private static bool ShouldStatusUseCustomResponse(LineStatusSeverity statusSeverity)
        {
            switch (statusSeverity)
            {
            case LineStatusSeverity.GoodService:
            case LineStatusSeverity.NoIssues:
            case LineStatusSeverity.ServiceClosed:
                return(true);

            default:
                return(false);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Append <see cref="System.Diagnostics.Trace"/> logger.
 /// </summary>
 /// <param name="line"></param>
 /// <param name="severity">
 ///     <list type="bullet">
 ///         <item>0 - OK</item>
 ///         <item>1 - Warning</item>
 ///         <item>2 - Error</item>
 ///         <item>3 - Failed</item>
 ///     </list>
 /// </param>
 /// <returns></returns>
 public static ILineLogger DiagnosticsTrace(this ILine line, LineStatusSeverity severity = LineStatusSeverity.Warning)
 => line.Logger(new LineDiagnosticsTrace(severity));
Ejemplo n.º 7
0
 /// <summary>
 /// Try to add a <paramref name="logger"/> to <paramref name="line"/>.
 /// </summary>
 /// <param name="line"></param>
 /// <param name="logger">writer such as Console.Out</param>
 /// <param name="severity">
 ///     <list type="bullet">
 ///         <item>0 - OK</item>
 ///         <item>1 - Warning</item>
 ///         <item>2 - Error</item>
 ///         <item>3 - Failed</item>
 ///     </list>
 /// </param>
 /// <returns>disposable subscription handle, or null if <paramref name="line"/> cannot be observed</returns>
 public static ILineLogger Logger(this ILine line, TextWriter logger, LineStatusSeverity severity = LineStatusSeverity.Warning)
 => line.Logger(new LineTextLogger(logger, severity));
Ejemplo n.º 8
0
 /// <summary>
 /// Create logger
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="severity"></param>
 public LineTextLogger(TextWriter logger, LineStatusSeverity severity)
 {
     this.logger   = logger;
     this.severity = severity;
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Create logger
 /// </summary>
 /// <param name="severity"></param>
 public LineDiagnosticsTrace(LineStatusSeverity severity)
 {
     this.severity = severity;
 }