ConsoleLogListener.cs 909 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using BepInEx.Configuration;
  3. namespace BepInEx.Logging
  4. {
  5. /// <summary>
  6. /// Logs entries using Unity specific outputs.
  7. /// </summary>
  8. public class ConsoleLogListener : ILogListener
  9. {
  10. /// <inheritdoc />
  11. public void LogEvent(object sender, LogEventArgs eventArgs)
  12. {
  13. if ((eventArgs.Level & ConfigConsoleDisplayedLevel.Value) == 0)
  14. return;
  15. ConsoleManager.SetConsoleColor(eventArgs.Level.GetConsoleColor());
  16. ConsoleManager.ConsoleStream?.Write(eventArgs.ToStringLine());
  17. ConsoleManager.SetConsoleColor(ConsoleColor.Gray);
  18. }
  19. /// <inheritdoc />
  20. public void Dispose() { }
  21. private static readonly ConfigEntry<LogLevel> ConfigConsoleDisplayedLevel = ConfigFile.CoreConfig.Bind(
  22. "Logging.Console","LogLevels",
  23. LogLevel.Fatal | LogLevel.Error | LogLevel.Message | LogLevel.Info | LogLevel.Warning,
  24. "Which log levels to show in the console output.");
  25. }
  26. }