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(); }
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); }
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); }
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(); }
/// <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); }
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); }
/// <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; }
/// <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; }
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); }
/// <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) { }
/// <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) { }