summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/Monitor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI/Framework/Monitor.cs')
-rw-r--r--src/SMAPI/Framework/Monitor.cs19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/SMAPI/Framework/Monitor.cs b/src/SMAPI/Framework/Monitor.cs
index 44eeabe6..527cba64 100644
--- a/src/SMAPI/Framework/Monitor.cs
+++ b/src/SMAPI/Framework/Monitor.cs
@@ -18,8 +18,8 @@ namespace StardewModdingAPI.Framework
/// <summary>Handles writing text to the console.</summary>
private readonly IConsoleWriter ConsoleWriter;
- /// <summary>Manages access to the console output.</summary>
- private readonly ConsoleInterceptionManager ConsoleInterceptor;
+ /// <summary>Prefixing a message with this character indicates that the console interceptor should write the string without intercepting it. (The character itself is not written.)</summary>
+ private readonly char IgnoreChar;
/// <summary>The log file to which to write messages.</summary>
private readonly LogFileManager LogFile;
@@ -52,11 +52,11 @@ namespace StardewModdingAPI.Framework
*********/
/// <summary>Construct an instance.</summary>
/// <param name="source">The name of the module which logs messages using this instance.</param>
- /// <param name="consoleInterceptor">Intercepts access to the console output.</param>
+ /// <param name="ignoreChar">A character which indicates the message should not be intercepted if it appears as the first character of a string written to the console. The character itself is not logged in that case.</param>
/// <param name="logFile">The log file to which to write messages.</param>
/// <param name="colorConfig">The colors to use for text written to the SMAPI console.</param>
/// <param name="isVerbose">Whether verbose logging is enabled. This enables more detailed diagnostic messages than are normally needed.</param>
- public Monitor(string source, ConsoleInterceptionManager consoleInterceptor, LogFileManager logFile, ColorSchemeConfig colorConfig, bool isVerbose)
+ public Monitor(string source, char ignoreChar, LogFileManager logFile, ColorSchemeConfig colorConfig, bool isVerbose)
{
// validate
if (string.IsNullOrWhiteSpace(source))
@@ -66,7 +66,7 @@ namespace StardewModdingAPI.Framework
this.Source = source;
this.LogFile = logFile ?? throw new ArgumentNullException(nameof(logFile), "The log file manager cannot be null.");
this.ConsoleWriter = new ColorfulConsoleWriter(Constants.Platform, colorConfig);
- this.ConsoleInterceptor = consoleInterceptor;
+ this.IgnoreChar = ignoreChar;
this.IsVerbose = isVerbose;
}
@@ -99,7 +99,7 @@ namespace StardewModdingAPI.Framework
internal void Newline()
{
if (this.WriteToConsole)
- this.ConsoleInterceptor.ExclusiveWriteWithoutInterception(Console.WriteLine);
+ Console.WriteLine();
this.LogFile.WriteLine("");
}
@@ -136,12 +136,7 @@ namespace StardewModdingAPI.Framework
// write to console
if (this.WriteToConsole && (this.ShowTraceInConsole || level != ConsoleLogLevel.Trace))
- {
- this.ConsoleInterceptor.ExclusiveWriteWithoutInterception(() =>
- {
- this.ConsoleWriter.WriteLine(consoleMessage, level);
- });
- }
+ this.ConsoleWriter.WriteLine(this.IgnoreChar + consoleMessage, level);
// write to log file
this.LogFile.WriteLine(fullMessage);