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([NotNull] string formatString, [NotNull] params object[] args);
///
/// Writes the message at the Info level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Info([NotNull] string formatString, [NotNull] params object[] args);
///
/// Writes the message at the Warning level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Warn([NotNull] string formatString, [NotNull] params object[] args);
///
/// Writes the message at the Error level using the specified parameters.
///
/// The format string.
/// The arguments.
[PublicAPI]
[StringFormatMethod("formatString")]
void Error([NotNull] string formatString, [NotNull] params object[] args);
///
/// Writes the message at the Error level using the specified exception.
///
/// The format string.
/// The exception.
[PublicAPI]
[StringFormatMethod("formatString")]
void Error([NotNull] string formatString, [NotNull] Exception exception);
///
/// Writes the LogEntryModel (LogRequestModel, LogResponseModel and more).
///
/// The Request Log Model.
/// Defines if this request is an admin request.
[PublicAPI]
void DebugRequestResponse([NotNull] LogEntryModel logEntryModel, bool isAdminRequest);
}
}