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