Example #1
0
        /// <summary>
        /// Write to text file, file is rolled.
        /// </summary>
        /// <param name="source">Event source.</param>
        /// <param name="fileNameSelector">Selector of output file name. DateTime is date of file open time, int is number sequence.</param>
        /// <param name="timestampPattern">Pattern of rolling identifier. DateTime is write time of message. If pattern is different roll new file.</param>
        /// <param name="rollSizeKB">Size of start next file.</param>
        /// <param name="encoding">String encoding.</param>
        /// <param name="autoFlush">If true, call Flush on every write.</param>
        public static IDisposable LogToRollingFile(this IObservable <IList <string> > source, Func <DateTime, int, string> fileNameSelector, Func <DateTime, string> timestampPattern, int rollSizeKB, Encoding encoding, bool autoFlush)
        {
            var sink         = new StringSink(fileNameSelector, timestampPattern, rollSizeKB, encoding, autoFlush);
            var subscription = source.Subscribe(sink);

            return(sink.CreateLinkedDisposable(subscription));
        }
Example #2
0
        // string

        /// <summary>
        /// Write to text file.
        /// </summary>
        /// <param name="source">Event source.</param>
        /// <param name="encoding">String encoding.</param>
        /// <param name="autoFlush">If true, call Flush on every write.</param>
        public static IDisposable LogToFile(this IObservable <string> source, string fileName, Encoding encoding, bool autoFlush)
        {
            var sink         = new StringSink(fileName, encoding, autoFlush);
            var subscription = source.Subscribe(sink);

            return(sink.CreateLinkedDisposable(subscription));
        }
Example #3
0
 public static SinkSubscription<StringSink> LogToCollection(
     this IObservable<EventEntry> eventStream,
     Action<string> action,
     IEventTextFormatter formatter = null)
 {
     var sink = new StringSink(action);
     var subscription = eventStream.Subscribe(sink);
     return new SinkSubscription<StringSink>(subscription, sink);
 }
 public void LogSink_InternalLoggerIsRemovedFromSinkWhenDisposed()
 {
     LogConfiguration configuration = new LogConfiguration();
     StringSink sink = new StringSink { Name = "fake" };
     configuration.Sinks.Add(sink);
     LogKernel kernel = new LogKernel(configuration);
     Assert.IsNotNull(sink.InternalLogger);
     kernel.Dispose();
     Assert.IsNull(sink.InternalLogger);
 }
 public void LogSink_LogSinkNamesCanNotChangeAfterKernelInstantiation()
 {
     LogConfiguration configuration = new LogConfiguration();
     StringSink sink = new StringSink { Name = "fake" };
     sink.Name = "fake2";
     sink.Name = "fake3";
     configuration.Sinks.Add(sink);
     Assert.AreEqual("fake3", sink.Name);
     LogKernel kernel = new LogKernel(configuration);
     sink.Name = "fake4";
 }
 public void LogSink_LogSinkHasInternalLogger()
 {
     LogConfiguration configuration = new LogConfiguration();
     StringSink sink = new StringSink { Name = "fake" };
     configuration.Sinks.Add(sink);
     LogKernel kernel = new LogKernel(configuration);
     Assert.IsNotNull(sink.InternalLogger);
 }