using System;
namespace GitConverter.Lib.Logging
{
///
/// Minimal logging interface the library can use without depending on any specific logging implementation.
///
///
/// - Keep this surface small so the library does not force a particular logging framework on consumers.
/// - Implementations should avoid throwing from logging calls; logging should be best-effort and not change application flow.
///
public interface IAppLogger
{
///
/// Log a debug/detail message intended for developers or verbose diagnostics.
///
/// The message to log.
void Debug(string message);
///
/// Log an informational message that represents normal operation or key milestones.
///
/// The message to log.
void Info(string message);
///
/// Log a warning about an unexpected but recoverable condition.
///
/// The warning message to log.
void Warn(string message);
///
/// Log an error. Implementations may include exception details when is provided.
///
/// The error message to log.
/// Optional exception associated with the error.
void Error(string message, Exception ex = null);
}
}