using System.Diagnostics.CodeAnalysis; namespace Wayne.Lib.Log { /// <summary> /// Debug logger /// </summary> public interface IDebugLogger { /// <summary> /// Tells whether the default category is active in the Normal level. /// </summary> bool IsActive(); /// <summary> /// Tells whether the given category is active in the Normal level. /// </summary> bool IsActive(object category); /// <summary> /// Tells whether the default category is active in the given level. /// </summary> bool IsActive(DebugLogLevel debugLogLevel); /// <summary> /// Tells whether the given category is active in the given level. /// </summary> bool IsActive(object category, DebugLogLevel debugLogLevel); /// <summary> /// Adds a new object to the debug log entry. /// </summary> /// <param name="obj">The log object that are added.</param> [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "obj")] void Add(object obj); /// <summary> /// Adds a new object to the debug log entry. /// </summary> /// <param name="obj">The log object that are added.</param> /// <param name="level">TDB</param> [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "obj")] void Add(object obj, DebugLogLevel level); /// <summary> /// Adds a new object to the debug log entry. /// </summary> /// <param name="obj">The log object that are added.</param> /// <param name="category">A specific category that this log is about.</param> [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "obj")] void Add(object obj, object category); /// <summary> /// Adds a new object to the debug log entry. /// </summary> /// <param name="obj">The log object that are added.</param> /// <param name="category">A specific category that this log is about.</param> /// <param name="level">TDB</param> [SuppressMessage("Microsoft.Naming", "CA1720:IdentifiersShouldNotContainTypeNames", MessageId = "obj")] void Add(object obj, object category, DebugLogLevel level); } }