using System.Reactive.Concurrency; using System.Reactive.Linq; using System.Reactive.Subjects; namespace InnovEnergy.Lib.Logging; public static class Logger { private static readonly Subject Subject = new Subject(); public static IObservable Messages { get; } = Subject.ObserveOn(TaskPoolScheduler.Default); public static void Log(String message, Dictionary properties, params String[] tags) { var t = new HashSet(tags); Log(message, properties, t); } private static void Log(String message, Dictionary properties, HashSet tags) { var logMessage = new LogMessage(message, tags, properties); Subject.OnNext(logMessage); } }