Esempio n. 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));
        }
Esempio n. 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));
        }