namespace SimpleLog {
public interface ILogger : IMessageFormatter {
///
/// Registers a log handler with this logger
///
/// The log handler to register
void RegisterLogHandler(ILogHandler handler);
///
/// Unregisters the given log handler
///
/// TRUE if successfully unregistered, FALSE if not
//bool UnregisterLogHandler(ILogHandler handler);
///
/// Removes all log handlers that match the given assembly name
///
/// Number of log handlers that were unregistered
int UnregisterLogHandlerType(string assemblyName);
///
/// Unregisters all registered log handlers
///
/// Number of log handlers that were unregistered
int UnregisterAllLogHandlers();
///
/// Gets or sets the log level
///
LogLevel LogLevel {get; set;}
///
/// Logs a message at the specified log level
///
/// The message to log
/// The log level of the message
/// TRUE if all handler succesfully logged, or false if any of them failed
bool Log(object message, LogLevel level);
///
/// Gets or sets the message handler
///
IMessageHandler MessageHandler { get; set; }
}
}