/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using System.IO; namespace QuantConnect.Logging { /// /// ILogHandler implementation that writes log output to console. /// public class ConsoleLogHandler : ILogHandler { private const string DefaultDateFormat = "yyyyMMdd HH:mm:ss.fff"; private readonly TextWriter _trace; private readonly TextWriter _error; private readonly string _dateFormat; /// /// Initializes a new instance of the class. /// public ConsoleLogHandler() : this(DefaultDateFormat) { } /// /// Initializes a new instance of the class. /// /// Specifies the date format to use when writing log messages to the console window public ConsoleLogHandler(string dateFormat = DefaultDateFormat) { // saves references to the real console text writer since in a deployed state we may overwrite this in order // to redirect messages from algorithm to result handler _trace = Console.Out; _error = Console.Error; _dateFormat = dateFormat; } /// /// Write error message to log /// /// The error text to log public void Error(string text) { Console.ForegroundColor = ConsoleColor.Red; _error.WriteLine(DateTime.Now.ToString(_dateFormat) + " ERROR:: " + text); Console.ResetColor(); } /// /// Write debug message to log /// /// The debug text to log public void Debug(string text) { _trace.WriteLine(DateTime.Now.ToString(_dateFormat) + " DEBUG:: " + text); } /// /// Write debug message to log /// /// The trace text to log public void Trace(string text) { _trace.WriteLine(DateTime.Now.ToString(_dateFormat) + " Trace:: " + text); } /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// /// 2 public void Dispose() { } } }