Esempio n. 1
0
        /// <summary>
        /// 创建具体文件类型日志的工厂方法。
        /// </summary>
        /// <param name="metaLog">日志数据封送对象</param>
        private static void WriteLogFactory(MetaLog metaLog)
        {
            ILogAppender logAppender = null;

            if (metaLog.Storage == Storage.Txt)
            {
                logAppender = TextLogAppender.Instance;
            }
            else if (metaLog.Storage == Storage.Db)
            {
                logAppender = DBLogAppender.Instance;
            }

            //把日志记录到具体的存储介质中。
            logAppender.Append(metaLog);
        }
Esempio n. 2
0
        public static void RegisterAppender(ILogAppender logAppender, bool fill)
        {
            Verify.Argument.IsNotNull(logAppender, "logAppender");

            lock (_log)
            {
                _appenders.Add(logAppender);
                if (fill && _count != 0)
                {
                    int end = (_start + _count) % _log.Length;
                    for (int i = _start; i != end; i = (i + 1) % _log.Length)
                    {
                        logAppender.Append(_log[i]);
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 记录日志的方法。
        /// </summary>
        /// <param name="metaLog">日志数据封送对象</param>
        public void Write(MetaLog metaLog)
        {
            if (defaultLevel < metaLog.Level)
            {
                return;
            }

            ILogAppender logAppender = null;

            if (metaLog.Storage == Storage.Txt)
            {
                logAppender = TextLogAppender.Instance;
            }
            else if (metaLog.Storage == Storage.Db)
            {
                logAppender = DBLogAppender.Instance;
            }

            //把日志记录到具体的存储介质中。
            logAppender.Append(metaLog);
        }
Esempio n. 4
0
        public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter)
        {
            if (!IsEnabled(logLevel))
            {
                return;
            }

            var cancellationToken = _appender.GetCancellationToken();

            var entry = new LogEntry
            {
                LogLevel  = logLevel,
                EventId   = eventId.Id,
                EventName = eventId.Name,
                State     = SerializeState(state),
                Exception = SerializeException(exception),
                Message   = formatter(state, exception)
            };

            _appender.Append(entry, cancellationToken);
        }
Esempio n. 5
0
        public static void RegisterAppender(ILogAppender logAppender, bool fill)
        {
            Verify.Argument.IsNotNull(logAppender, "logAppender");

            lock(_log)
            {
                _appenders.Add(logAppender);
                if(fill && _count != 0)
                {
                    int end = (_start + _count) % _log.Length;
                    for(int i = _start; i != end; i = (i + 1) % _log.Length)
                    {
                        logAppender.Append(_log[i]);
                    }
                }
            }
        }