Example #1
0
        /// <inheritdoc />
        public void Write(LogLevelName level, List <ILogEntry> entries)
        {
            var date = TimeProvider.Now;

            if (namer.ShouldUpdateFile(date))
            {
                CreateSink(date);
            }

            sink.Write(level, entries);
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of <see cref="AsyncSingleFileSink"/>.
        /// </summary>
        /// <param name="formatter">Log formatter.</param>
        /// <param name="renderer">Renderer factory method.</param>
        /// <param name="logFilePath">Log file path.</param>
        /// <param name="encoding">File encoding. The default is UTF8.</param>
        /// <param name="bufferSize">Buffer size to be used. The default is 4096.</param>
        public AsyncSingleFileSink(ILogFormatter formatter, Func <IDataRenderer> renderer, string logFilePath,
                                   Encoding encoding = null, int bufferSize = 4096)
        {
            Formatter     = formatter;
            this.renderer = renderer;

            sink = new FileSink(Formatter, renderer, logFilePath, encoding, bufferSize);

            asyncWriter = new AsyncWriter((level, entries) =>
            {
                sink.Write(level, entries);
            });
            asyncWriter.Start();
        }