Exemplo n.º 1
0
        private JsonVerbose GetTimestamp()
        {
            var current = DateTime.UtcNow;

            JsonVerbose result;
            var         lockTaken = false;

            _lock.Enter(ref lockTaken);

            if (current.Ticks - _last.Ticks < 1000)
            {
                result = _lastVerbose;
            }
            else
            {
                result       = new JsonVerbose(current.ToString("s"));
                _last        = current;
                _lastVerbose = result;
            }

            if (lockTaken)
            {
                _lock.Exit();
            }

            return(result);
        }
Exemplo n.º 2
0
 public LogLevelEnricher()
 {
     _errorVerbose   = new JsonVerbose("ERR");
     _debugVerbose   = new JsonVerbose("DBG");
     _infoVerbose    = new JsonVerbose("INF");
     _traceVerbose   = new JsonVerbose("TRA");
     _warningVerbose = new JsonVerbose("WRN");
 }
Exemplo n.º 3
0
        public TimeStampEnricher(string dateTimeFormat)
        {
            _dateTimeFormat = dateTimeFormat;
            _lock           = new SpinLock();
            _lastVerbose    = GetTimestamp();

            GetTimestamp();
        }
Exemplo n.º 4
0
        public void Enrich(LogLevel level, Type sender, JsonObject message)
        {
            if (!_senders.TryGetValue(sender, out var value))
            {
                value = new JsonVerbose(ReflectionUtils.GetName(sender));
                using (Lock.Enter(_lock))
                {
                    _senders[sender] = value;
                }
            }

            message.Add(Name, value);
        }
Exemplo n.º 5
0
        public void HaveOneVerboseInstance(LogLevel level, Type sender)
        {
            var messages = Many(() => new JsonObject());

            JsonVerbose instance = null;

            foreach (var message in messages)
            {
                _enricher.Enrich(level, sender, message);

                if (instance == null)
                {
                    instance = (JsonVerbose)message[LogLevelEnricher.Name];
                }
                else
                {
                    instance.Should().Be(message[LogLevelEnricher.Name]);
                }
            }
        }