diff --git a/isometric-park-fna/FNAGame.cs b/isometric-park-fna/FNAGame.cs --- a/isometric-park-fna/FNAGame.cs +++ b/isometric-park-fna/FNAGame.cs @@ -875,6 +875,7 @@ additionalInfo.Add("mouse delta", delta.ToString()); additionalInfo.Add("Tracery Test", this.output); + additionalInfo.Add("Log Entry", string.Format("{0} {1}", Logging.entries[Logging.entries.Count-1].level, Logging.entries[Logging.entries.Count-1].message)); debugWindow.Layout(debugInfo, additionalInfo, ref show_another_window); diff --git a/isometric-park-fna/Logging.cs b/isometric-park-fna/Logging.cs --- a/isometric-park-fna/Logging.cs +++ b/isometric-park-fna/Logging.cs @@ -25,13 +25,22 @@ Trace, Spy } + + public struct LogEntry { + public DateTime timestamp; + public string message; + public LogLevel level; + public ITuple data; + } public class Logging { // private // - public static List entries = new List(); + public static LogLevel minimumConsoleLevel = LogLevel.Info; + + public static List entries = new List(); public static string logFileName = string.Format("log_{0:yyyyMMdd_HHmm}.txt", DateTime.Now); public static StreamWriter logFile = File.CreateText(logFileName); @@ -54,6 +63,9 @@ { var timestamp = DateTime.Now; + if ( (level < minimumConsoleLevel) + || level == LogLevel.Spy) + { var start_foreground = Console.ForegroundColor; var start_background = Console.BackgroundColor; @@ -61,25 +73,28 @@ Console.ForegroundColor = new_foreground; Console.BackgroundColor = new_background; - //29/Apr/2021 22:43:30 Console.Out.Write(string.Format("[{0}] {1}", timestamp.ToString("s"), level.ToString())); - Console.ForegroundColor = start_foreground; Console.BackgroundColor = start_background; Console.Out.WriteLine(string.Format(" {0} [{1}:{2}]", message, path, lineNumber)); + } + + logFile.WriteLine(string.Format("[{0}] {1} {2} [{3}:{4}]", timestamp.ToString("s"), level.ToString(), message, path, lineNumber)); - logFile.WriteLine("[{0}] {1} {0} [{1}:{2}]"); + Logging.entries.Add(new LogEntry{timestamp = timestamp, + level = level, + message = message}); } private static void Log_(LogLevel level, string message, T data, int lineNumber, string caller, string path) where T : ITuple { - Logging.entries.Add(data); + // Logging.entries.Add(data); // var d = data.GetType().GetProperties().ToDictionary(Info => Info.Name, Info => Info.GetValue(data)); // var data_strings = data.GetType().GetProperties().Select(Info => Info.Name + "=" + Info.GetValue(data).ToString()); // var data_string = string.Join(", ", data_strings);