using System;
using JetBrains.Annotations;
using WireMock.Admin.Requests;
namespace WireMock.Logging
{
///
/// IWireMockLogger interface
///
[PublicAPI]
public interface IWireMockLogger
{
///
/// Writes the message at the Debug level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Debug(string formatString, params object[] args);
///
/// Writes the message at the Info level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Info(string formatString, params object[] args);
///
/// Writes the message at the Warning level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Warn(string formatString, params object[] args);
///
/// Writes the message at the Error level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Error(string formatString, params object[] args);
///
/// Writes the message at the Error level using the specified exception.
///
/// The format string.
/// The exception.
[PublicAPI]
[StringFormatMethod("formatString")]
void Error(string formatString, Exception exception);
///
/// Writes the LogEntryModel (LogRequestModel, LogResponseModel and more).
///
/// The Request Log Model.
/// Defines if this request is an admin request.
[PublicAPI]
void DebugRequestResponse(LogEntryModel logEntryModel, bool isAdminRequest);
}
}