Пример #1
0
        internal AsyncQueueWithReliableSending(AsyncReliableQueueWrapperConfiguration config, ILoggingEventWriter logger)
            : base(1, config.MaxQueueSize, "AsyncQueueWithReliableSending for logger", true)
        {
            Contract.Requires(config != null);
            Contract.Requires(logger != null);

            _logger = logger;

            // конфиги для обработки переполнения очереди
            _isOverflowed    = IS_NOT_OVERFLOWED;
            _borderOverflow  = Convert.ToInt32(config.MaxQueueSize * 0.5);
            _isDiscardExcess = config.IsDiscardExcess;

            string newFolderForTemporaryStore = TemporaryStoreLockFile.FindNotLockedDirectory(config.FolderForTemporaryStore, out _tempStoreLock);

            _reader      = new TemporaryStoreReader(newFolderForTemporaryStore);
            _writer      = new TemporaryStoreWriter(newFolderForTemporaryStore, config.MaxFileSize);
            _tokenSource = new CancellationTokenSource();

            _readerThread = new Thread(new ParameterizedThreadStart(TemporaryReaderLoop));
            _readerThread.IsBackground = true;
            _readerThread.Name         = "AsyncQueueWithReliableSending (reader loop) for logger";

            _readerThread.Start(_tokenSource.Token);
            Start();
        }
Пример #2
0
        public PatternMatchingWriter(PatternMatchingWrapperConfiguration config,
                                     Dictionary <string, ILoggingEventWriter> matchWriters, ILoggingEventWriter defaultWriter)
        {
            Contract.Requires(config != null);
            Contract.Requires(matchWriters != null);

            _match             = new Dictionary <string, ILoggingEventWriter>(matchWriters);
            _default           = defaultWriter;
            _matchTemplate     = config.Pattern;
            _templateConverter = TemplateParser.Parse(_matchTemplate, ConverterFactory.Default);
        }
Пример #3
0
        public PatternMatchingWriter(PatternMatchingWrapperConfiguration config)
        {
            Contract.Requires(config != null);

            _match = config.MatchWriters.ToDictionary(o => o.Key, o => LoggerFactory.CreateWriter(o.Value));
            if (config.DefaultWriter != null)
            {
                _default = LoggerFactory.CreateWriter(config.DefaultWriter);
            }
            _matchTemplate     = config.Pattern;
            _templateConverter = TemplateParser.Parse(_matchTemplate, ConverterFactory.Default);
        }
Пример #4
0
        public AsyncQueue(AsyncQueueWrapperConfiguration config, ILoggingEventWriter logger)
            : base(1, config.MaxQueueSize, "AsyncQueue for logger", true)
        {
            Contract.Requires(config != null);
            Contract.Requires(logger != null);

            _logger = logger;

            // конфиги для обработки переполнения очереди
            _isOverflowed    = IS_NOT_OVERFLOWED;
            _borderOverflow  = Convert.ToInt32(config.MaxQueueSize * 0.5);
            _isDiscardExcess = config.IsDiscardExcess;

            Start();
        }
Пример #5
0
        /// <summary>
        /// Create logger by passed configuration for module with name 'moduleName'
        /// </summary>
        /// <param name="configuration">Logger configuration object</param>
        /// <param name="moduleName">Module name</param>
        /// <returns>Created logger</returns>
        public static Logger CreateLogger(string moduleName, LoggerConfiguration configuration)
        {
            Contract.Requires <ArgumentNullException>(moduleName != null, "moduleName");
            Contract.Requires <ArgumentNullException>(configuration != null, "configuration");

            ILoggingEventWriter writer = CreateWriter(configuration.Writer);

            Contract.Assume(writer != null, "writer");

            var wrappedLogger = new Logger(configuration.Level, moduleName, writer, configuration.IsStackTraceEnabled, configuration.IsEnabled);

            Contract.Assume(wrappedLogger != null, "wrappedLogger");

            return(wrappedLogger);
        }
Пример #6
0
        internal ReliableWrapper(ReliableWrapperConfiguration config, ILoggingEventWriter logger)
        {
            Contract.Requires(config != null);
            Contract.Requires(logger != null);

            _logger = logger;

            string newFolderForTemporaryStore = TemporaryStoreLockFile.FindNotLockedDirectory(config.FolderForTemporaryStore, out _tempStoreLock);

            _reader      = new TemporaryStoreReader(newFolderForTemporaryStore);
            _writer      = new TemporaryStoreWriter(newFolderForTemporaryStore, config.MaxFileSize);
            _tokenSource = new CancellationTokenSource();

            _readerThread = new Thread(new ParameterizedThreadStart(TemporaryReaderLoop));
            _readerThread.IsBackground = true;
            _readerThread.Name         = "AsyncQueueWithReliableSending (reader loop) for logger";

            _readerThread.Start(_tokenSource.Token);
        }
Пример #7
0
        /// <summary>
        /// LoggerBase constructor
        /// </summary>
        /// <param name="logLevel">Log level</param>
        /// <param name="moduleName">Name of the module for which this logger will be created</param>
        /// <param name="typeInfo">Type to which this logger will be bound</param>
        /// <param name="innerLogger">Logger or writer to be wrapped</param>
        /// <param name="enableStackTraceExtraction">Will StackTrace extraction be enabled for this logger</param>
        /// <param name="isEnabled">Will logger be enabled after creation</param>
        public LoggerBase(LogLevel logLevel, string moduleName, Type typeInfo, ILoggingEventWriter innerLogger, bool enableStackTraceExtraction = false, bool isEnabled = true)
        {
            Contract.Requires <ArgumentNullException>(logLevel != null, "logLevel");
            Contract.Requires <ArgumentNullException>(moduleName != null, "moduleName");
            Contract.Requires <ArgumentNullException>(innerLogger != null, "innerLogger");

            _moduleName = moduleName;
            _typeInfo   = typeInfo;
            _logger     = innerLogger;
            Refresh();

            Level           = logLevel;
            _isEnabled      = isEnabled;
            _isTraceEnabled = Level.IsTraceEnabled;
            _isDebugEnabled = Level.IsDebugEnabled;
            _isInfoEnabled  = Level.IsInfoEnabled;
            _isWarnEnabled  = Level.IsWarnEnabled;
            _isErrorEnabled = Level.IsErrorEnabled;
            _isFatalEnabled = Level.IsFatalEnabled;

            _allowStackTraceInfoExtraction = enableStackTraceExtraction;
        }
Пример #8
0
        /// <summary>
        /// LoggerBase constructor
        /// </summary>
        /// <param name="configuration">Logger configuration object</param>
        /// <param name="moduleName">Name of the module for which this logger will be created</param>
        /// <param name="innerLogger">Logger or writer to be wrapped</param>
        public LoggerBase(LoggerConfiguration configuration, string moduleName, ILoggingEventWriter innerLogger)
        {
            Contract.Requires <ArgumentNullException>(configuration != null, "configuration");
            Contract.Requires <ArgumentNullException>(moduleName != null, "moduleName");
            Contract.Requires <ArgumentNullException>(innerLogger != null, "innerLogger");

            Contract.Assume(configuration.Level != null, "configuration.Level");

            _moduleName = moduleName;
            _typeInfo   = null;
            _logger     = innerLogger;
            Refresh();

            Level           = configuration.Level;
            _isEnabled      = configuration.IsEnabled;
            _isTraceEnabled = Level.IsTraceEnabled;
            _isDebugEnabled = Level.IsDebugEnabled;
            _isInfoEnabled  = Level.IsInfoEnabled;
            _isWarnEnabled  = Level.IsWarnEnabled;
            _isErrorEnabled = Level.IsErrorEnabled;
            _isFatalEnabled = Level.IsFatalEnabled;
            _allowStackTraceInfoExtraction = configuration.IsStackTraceEnabled;
        }
Пример #9
0
        public bool Write(LoggingEvent data)
        {
            if (_isDisposed)
            {
                _thisClassSupportLogger.Error("Attempt to write LoggingEvent in Disposed state");
                return(false);
            }

            string pattern = _templateConverter.Convert(data);

            ILoggingEventWriter curWriter = null;

            if (pattern == null || !_match.TryGetValue(pattern, out curWriter))
            {
                curWriter = _default;
            }

            if (curWriter != null)
            {
                return(curWriter.Write(data));
            }

            return(true);
        }
Пример #10
0
 /// <summary>
 /// LoggerBase constructor
 /// </summary>
 /// <param name="logLevel">Log level</param>
 /// <param name="moduleName">Name of the module for which this logger will be created</param>
 /// <param name="innerLogger">Logger or writer to be wrapped</param>
 /// <param name="enableStackTraceExtraction">Will StackTrace extraction be enabled for this logger</param>
 /// <param name="isEnabled">Will logger be enabled after creation</param>
 public LoggerBase(LogLevel logLevel, string moduleName, ILoggingEventWriter innerLogger, bool enableStackTraceExtraction = false, bool isEnabled = true)
     : this(logLevel, moduleName, null, innerLogger, enableStackTraceExtraction, isEnabled)
 {
 }
Пример #11
0
 /// <summary>
 /// Logger constructor
 /// </summary>
 /// <param name="logLevel">Log level</param>
 /// <param name="moduleName">Name of the module for which this logger will be created</param>
 /// <param name="typeInfo">Type to which this logger will be bound</param>
 /// <param name="innerLogger">Parent logger or writer</param>
 /// <param name="enableStackTraceExtraction">Will StackTrace extraction be enabled for this logger</param>
 /// <param name="isEnabled">Will logger be enabled after creation</param>
 internal Logger(LogLevel logLevel, string moduleName, Type typeInfo, ILoggingEventWriter innerLogger, bool enableStackTraceExtraction, bool isEnabled)
     : base(logLevel, moduleName, typeInfo, innerLogger, enableStackTraceExtraction, isEnabled)
 {
 }