using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Bit.Core.Abstractions
{
public interface ILogger
{
///
/// Place necessary code to initiaze logger
///
///
Task InitAsync();
///
/// Returns if the current logger is enable or disable.
///
///
Task IsEnabled();
///
/// Changes the state of the current logger. Setting state enabled to false will block logging.
///
Task SetEnabled(bool value);
///
/// Logs something that is not in itself an exception, e.g. a wrong flow or value that needs to be reported
/// and looked into.
///
/// A text to be used as the issue's title
/// Additional data
void Error(string message,
IDictionary extraData = null,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0);
///
/// Logs an exception
///
void Exception(Exception ex);
}
}