mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Fix log messages being duplicated
This commit is contained in:
1 parent
a404365498
commit
c49845446f
1 file changed
+32
-24
@@ -57,8 +57,9 @@ namespace BepInEx.Bootstrap
|
|||||||
if (_initialized)
|
if (_initialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
ReplayPreloaderLogs(preloaderLogEvents);
|
||||||
ThreadingHelper.Initialize();
|
ThreadingHelper.Initialize();
|
||||||
|
|
||||||
// Set vitals
|
// Set vitals
|
||||||
if (gameExePath != null)
|
if (gameExePath != null)
|
||||||
{
|
{
|
||||||
@@ -75,38 +76,17 @@ namespace BepInEx.Bootstrap
|
|||||||
}
|
}
|
||||||
|
|
||||||
Logger.InitializeInternalLoggers();
|
Logger.InitializeInternalLoggers();
|
||||||
Logger.Listeners.Add(new UnityLogListener());
|
|
||||||
|
|
||||||
if (ConfigDiskLogging.Value)
|
if (ConfigDiskLogging.Value)
|
||||||
Logger.Listeners.Add(new DiskLogListener("LogOutput.log", ConfigDiskConsoleDisplayedLevel.Value, ConfigDiskAppend.Value, ConfigDiskWriteUnityLog.Value));
|
Logger.Listeners.Add(new DiskLogListener("LogOutput.log", ConfigDiskConsoleDisplayedLevel.Value, ConfigDiskAppend.Value, ConfigDiskWriteUnityLog.Value));
|
||||||
|
|
||||||
if (!TraceLogSource.IsListening)
|
if (!TraceLogSource.IsListening)
|
||||||
Logger.Sources.Add(TraceLogSource.CreateSource());
|
Logger.Sources.Add(TraceLogSource.CreateSource());
|
||||||
|
|
||||||
|
// Add Unity log source only after replaying to prevent duplication in console
|
||||||
if (ConfigUnityLogging.Value)
|
if (ConfigUnityLogging.Value)
|
||||||
Logger.Sources.Add(new UnityLogSource());
|
Logger.Sources.Add(new UnityLogSource());
|
||||||
|
|
||||||
|
|
||||||
// Temporarily disable the console log listener as we replay the preloader logs
|
|
||||||
var logListener = Logger.Listeners.FirstOrDefault(logger => logger is ConsoleLogListener);
|
|
||||||
|
|
||||||
if (logListener != null)
|
|
||||||
Logger.Listeners.Remove(logListener);
|
|
||||||
|
|
||||||
// Write preloader log events if there are any, including the original log source name
|
|
||||||
if (preloaderLogEvents != null)
|
|
||||||
{
|
|
||||||
var preloaderLogSource = Logger.CreateLogSource("Preloader");
|
|
||||||
|
|
||||||
foreach (var preloaderLogEvent in preloaderLogEvents)
|
|
||||||
Logger.InternalLogEvent(preloaderLogSource, preloaderLogEvent);
|
|
||||||
|
|
||||||
Logger.Sources.Remove(preloaderLogSource);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (logListener != null)
|
|
||||||
Logger.Listeners.Add(logListener);
|
|
||||||
|
|
||||||
if (Utility.CurrentOs == Platform.Linux)
|
if (Utility.CurrentOs == Platform.Linux)
|
||||||
{
|
{
|
||||||
Logger.LogInfo($"Detected Unity version: v{Application.unityVersion}");
|
Logger.LogInfo($"Detected Unity version: v{Application.unityVersion}");
|
||||||
@@ -116,6 +96,34 @@ namespace BepInEx.Bootstrap
|
|||||||
|
|
||||||
_initialized = true;
|
_initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void ReplayPreloaderLogs(ICollection<LogEventArgs> preloaderLogEvents)
|
||||||
|
{
|
||||||
|
if (preloaderLogEvents == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var unityLogger = new UnityLogListener();
|
||||||
|
Logger.Listeners.Add(unityLogger);
|
||||||
|
|
||||||
|
// Temporarily disable the console log listener (if there is one from preloader) as we replay the preloader logs
|
||||||
|
var logListener = Logger.Listeners.FirstOrDefault(logger => logger is ConsoleLogListener);
|
||||||
|
|
||||||
|
if (logListener != null)
|
||||||
|
Logger.Listeners.Remove(logListener);
|
||||||
|
|
||||||
|
// Write preloader log events if there are any, including the original log source name
|
||||||
|
var preloaderLogSource = Logger.CreateLogSource("Preloader");
|
||||||
|
|
||||||
|
foreach (var preloaderLogEvent in preloaderLogEvents)
|
||||||
|
Logger.InternalLogEvent(preloaderLogSource, preloaderLogEvent);
|
||||||
|
|
||||||
|
Logger.Sources.Remove(preloaderLogSource);
|
||||||
|
|
||||||
|
Logger.Listeners.Remove(unityLogger);
|
||||||
|
|
||||||
|
if (logListener != null)
|
||||||
|
Logger.Listeners.Add(logListener);
|
||||||
|
}
|
||||||
|
|
||||||
private static Regex allowedGuidRegex { get; } = new Regex(@"^[a-zA-Z0-9\._\-]+$");
|
private static Regex allowedGuidRegex { get; } = new Regex(@"^[a-zA-Z0-9\._\-]+$");
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user