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