Exemple #1
0
        public AutoTrace(ILogMessageWriter logWriter, Func <string> messageFactory, [CallerMemberName] string caller = "", params KeyValuePair <string, string>[] customProperties)
        {
            try
            {
                if (logWriter == null)
                {
                    return;
                }
                if (messageFactory == null)
                {
                    return;
                }
                if (string.IsNullOrEmpty(caller))
                {
                    return;
                }
                m_Caller = caller;
                if (logWriter.IsTraceEnabled)
                {
                    m_LogMessageWriter = logWriter;
                    m_Message          = GetMessage(messageFactory);
                    m_StartTime        = s_StopWatch.Elapsed;

                    m_LogMessageWriter.WriteLogEntry(LogLevel.Trace, () => LogFormatters.TraceEnter(m_Message), m_Caller, customProperties: customProperties);

                    m_TraceStackHandle = TraceStack.Push(LogFormatters.ContextPart(m_Caller));
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
        }
        ILogMessageWriter[] CreateWriters(Type type)
        {
            var writers = new ILogMessageWriter[_creators.Length];

            for (var i = 0; i < _creators.Length; ++i)
            {
                writers[i] = _creators[i].CreateFor(type);
            }

            return(writers);
        }
Exemple #3
0
 public AsyncLogging(ILogMessageWriter logMessageWriter, TimeSpan writeInterval, TimeSpan disposeInterval)
 {
     _logMessageWriter      = logMessageWriter ?? throw new ArgumentNullException(nameof(logMessageWriter));
     WriteInterval          = writeInterval;
     DisposeWaitingInterval = disposeInterval;
 }
Exemple #4
0
 public YamlLoggerSync(ILogMessageWriter logMessageWriter)
 {
     _logMessageWriter = logMessageWriter ?? throw new ArgumentNullException(nameof(logMessageWriter));
 }