Exemple #1
0
        public FileLogger(IQueuedLogWriter logWriter, string categoryName, FileLoggerOptions options)
        {
            Requires.NotNull(logWriter, nameof(logWriter));
            Requires.NotEmpty(categoryName, nameof(categoryName));
            Requires.NotNull(options, nameof(options));

            _logWriter    = logWriter;
            _categoryName = categoryName;
            _options      = options;
        }
        public FileQueuedLogWriter(FileLoggerOptions options)
        {
            Requires.NotNull(options, nameof(options));

            _options = options;
            _cancellationTokenSource = new CancellationTokenSource();
            _loggingQueue            = new ConcurrentQueue <LogMessage>();
            _baseIntervalTime        = TimeSpan.FromSeconds(5);

            _processingTask = Task.Run(ProcessQueueAsync);
        }
        /// <summary>
        ///     Creates a new instance of the <see cref="FileLoggerProvider" />.
        /// </summary>
        /// <param name="options">A delegate specifying the options to be used for file logging.</param>
        public FileLoggerProvider(Action <FileLoggerOptions> options)
        {
            Requires.NotNull(options, nameof(options));

            var opts = new FileLoggerOptions
            {
                MinimumLogLevel  = LogLevel.Information,
                TimeStampFormat  = "yyyy-MM-dd HH:mm:ss",
                LogDirectory     = "Logs",
                LogExtension     = ".log",
                LogName          = "Log",
                TimeStampFactory = () => DateTimeOffset.UtcNow
            };

            options(opts);

            _options   = opts;
            _logWriter = new FileQueuedLogWriter(opts);
        }