示例#1
0
        private void Message(LogLevel level, string message, params object[] args)
        {
            try
            {
                ILoggerSink loggerSink = LoggerSink;
                if (LogLevel == LogLevel.None || level < LogLevel || loggerSink == null)
                {
                    return;
                }

                var timeStamp = GetLogMessagePrefix();
                if (args == null || args.Length == 0)
                {
                    loggerSink.LogEvent(level, timeStamp + " " + message);
                }
                else
                {
                    loggerSink.LogEvent(level, timeStamp + " " + string.Format(message, args));
                }
            }
            catch (Exception e)
            {
                Trace.WriteLine($"Error logging message. Error: {e.Message}");
            }
        }
 public DataAccessFootprint AddSink(ILoggerSink sink)
 {
     this.ReferralLibrary             = sink.ReferralLibrary;
     this.SourceApplicationDomainName = sink.SourceApplicationDomainName;
     this.SourceMachineName           = sink.SourceMachineName;
     return(this);
 }
示例#3
0
        public static void Log(DataAccessLoggerType type, ILoggerSink sink, DataAccessFootprint logData)
        {
            if (sink != null)
            {
                switch (type)
                {
                case DataAccessLoggerType.Console:
                    new ConsoleLogger(sink).Log(logData);
                    break;

                case DataAccessLoggerType.Database:
                    new DatabaseLogger(sink).Log(logData);
                    break;

                case DataAccessLoggerType.EventLog:
                    new EventLogLogger(sink).Log(logData);
                    break;

                case DataAccessLoggerType.AzureTable:
                    new AzureTableLogger(sink).Log(logData);
                    break;

                case DataAccessLoggerType.File:
                    new FileLogger(sink).Log(logData);
                    break;

                default:
                    return;
                }
            }
            else
            {
                new ConsoleLogger().Log(logData);
            }
        }
示例#4
0
        public IDisposable CreateDisposableLoggingContext(ILoggerSink loggerSink)
        {
            ILoggerSink oldLoggerSink = LoggerSink;

            LoggerSink = loggerSink;
            return(new ActionOnDispose(() => LoggerSink = oldLoggerSink));
        }
示例#5
0
        internal static IDisposable SetTempDestination(ILoggerSink i)
        {
            ILoggerSink o = LoggerSink;

            LoggerSink = i;
            return(new ActionOnDispose(() => LoggerSink = o));
        }
示例#6
0
 public DataAccessResult(DataAccessFootprint footprint, ILoggerSink sink)
 {
     this.Operation = footprint.Operation;
     this.Message   = footprint.Message;
     this.IsSuccess = footprint.IsSuccess;
     this.Objects   = new List <DataAccessOperationObjects>();
     this.LogData   = footprint.AddSink(sink);
     this.Sink      = sink;
 }
示例#7
0
        static void Message(LogLevel level, string message, params object[] args)
        {
            ILoggerSink i = impl;

            if (level > logLevel || null == i)
            {
                return;
            }
            i.LogEvent(level, string.Format(message, args));
        }
示例#8
0
 internal Logger(IEnumerable <ILoggerSink> sinks)
 {
     if (sinks == null || sinks.Count() == 0)
     {
         runtimeLogger = (msg) => { };
     }
     if (sinks.Count() == 1)
     {
         this.sink     = sinks.First();
         runtimeLogger = LogSingle;
     }
     else
     {
         this.sinks    = sinks;
         runtimeLogger = LogMultiple;
     }
 }
示例#9
0
        static void Message(LogLevel level, string message, params object[] args)
        {
            var         timeStamp  = GetLogMessagePreifx();
            ILoggerSink loggerSink = LoggerSink;

            if (LogLevel == LogLevel.None || level < LogLevel || loggerSink == null)
            {
                return;
            }
            if (args == null || args.Length == 0)
            {
                loggerSink.LogEvent(level, timeStamp + " " + message);
            }
            else
            {
                loggerSink.LogEvent(level, timeStamp + " " + string.Format(message, args));
            }
        }
示例#10
0
        public Logger(params ILoggerSink[] sinks)
        {
            if (sinks == null || sinks.Count() == 0)
            {
                runtimeLogger = (msg) => { };
            }

            if (sinks.Count() <= 1)
            {
                this.sink     = sinks.First();
                runtimeLogger = LogSingle;
            }
            else
            {
                this.sinks    = sinks;
                runtimeLogger = LogMultiple;
            }
        }
 public DeleteDataAccessResult(string methodname, string message, bool issuccess, ILoggerSink sink)
     : base(new Model.DataAccessFootprint(DataAccessOperation.Delete, methodname, message, issuccess), sink)
 {
 }
示例#12
0
 public AzureTableLogger(ILoggerSink sink)
 {
     _Sink = sink as AzureTableSink;
 }
示例#13
0
 private InternalLogger(LogLevel logLevel, ILoggerSink loggerSink, Func <DateTimeOffset> nowProvider = null)
 {
     LogLevel   = logLevel;
     LoggerSink = loggerSink;
     Now        = nowProvider ?? Defaults.NowFunc();
 }
示例#14
0
 public ConsoleLogger(ILoggerSink sink)
 {
     _Sink = sink as ConsoleSink;
 }
示例#15
0
 internal static IInternalLogger Create(LogLevel logLevel, ILoggerSink loggerSink)
 {
     return(new InternalLogger(logLevel, loggerSink));
 }
示例#16
0
 public ProductService(string connectionString, ILoggerSink sink) : this(connectionString)
 {
     _Sink = sink;
 }
 public void Init()
 {
     _sink   = Substitute.For <ILoggerSink>();
     _logger = new SingleLineConsoleLogger(GetType().FullName, _sink, SingleLineConsoleLoggerOptions.Default, DummyExternalScopeProvider.Instance);
 }
示例#18
0
 static Logger()
 {
     logLevel = Config.DefaultLogLevel;
     impl     = new DefaultLoggerSink();
 }
示例#19
0
 static Logger()
 {
     LogLevel   = Defaults.DefaultLogLevel;
     LoggerSink = new DefaultLoggerSink();
 }
示例#20
0
 /// <summary>Override logging destination.</summary>
 /// <param name="i">The new destination where to log thise messages. Pass null to disable logging completely.</param>
 /// <remarks>This method is mainly for unit tests. However, if in your product you're using some logging infrastructure like nlog or custom logging,
 /// you may want to provide your own <see cref="ILoggerSink"/> implementation to have messages from Ably logged along with your own ones.</remarks>
 public static void SetDestination(ILoggerSink i)
 {
     impl = i;
 }
示例#21
0
 public FileLogger(ILoggerSink sink)
 {
     _Sink = sink as FileSink;
 }
示例#22
0
 internal Logger(ILoggerSink sink)
 {
     this.sink     = sink;
     runtimeLogger = LogSingle;
 }
示例#23
0
 public DatabaseLogger(ILoggerSink sink)
 {
     _Sink = sink as DatabaseSink;
 }
示例#24
0
 public SingleLineConsoleLogger(string name, ILoggerSink sink, SingleLineConsoleLoggerOptions options, IExternalScopeProvider scopeProvider)
 {
     _name          = name;
     _sink          = sink;
     _scopeProvider = scopeProvider;
 }
示例#25
0
 public EventLogLogger(ILoggerSink sink)
 {
     _Sink = sink as EventLogSink;
 }