forked from nikita/muzika-gromche
71 lines
1.2 KiB
C#
71 lines
1.2 KiB
C#
using BepInEx.Logging;
|
|
|
|
namespace MuzikaGromche;
|
|
|
|
#if DEBUG
|
|
|
|
// A logger with an API similar to ManualLogSource.
|
|
// This logger caches last posted messagee and uses it to deduplicate subsequent messages.
|
|
// Use Clear() to forget deduplicated message.
|
|
internal class DedupManualLogSource
|
|
{
|
|
public ManualLogSource Source;
|
|
|
|
object? lastData = null;
|
|
|
|
public DedupManualLogSource(ManualLogSource source)
|
|
{
|
|
Source = source;
|
|
}
|
|
|
|
public void Log(LogLevel level, object data)
|
|
{
|
|
if (lastData != data)
|
|
{
|
|
lastData = data;
|
|
Source.Log(level, data);
|
|
}
|
|
}
|
|
|
|
public void LogFatal(object data)
|
|
{
|
|
Log(LogLevel.Fatal, data);
|
|
}
|
|
|
|
public void LogError(object data)
|
|
{
|
|
Log(LogLevel.Error, data);
|
|
}
|
|
|
|
public void LogWarning(object data)
|
|
{
|
|
Log(LogLevel.Warning, data);
|
|
}
|
|
|
|
public void LogMessage(object data)
|
|
{
|
|
Log(LogLevel.Message, data);
|
|
}
|
|
|
|
public void LogInfo(object data)
|
|
{
|
|
Log(LogLevel.Info, data);
|
|
}
|
|
|
|
public void LogDebug(object data)
|
|
{
|
|
Log(LogLevel.Debug, data);
|
|
}
|
|
|
|
public void Clear()
|
|
{
|
|
lastData = null;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
}
|
|
}
|
|
|
|
#endif
|