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); } }