﻿using System;

namespace OfficeOpenXml.FormulaParsing.Logging;

/// <summary>
/// Used for logging during FormulaParsing
/// </summary>
public interface IFormulaParserLogger : IDisposable {
  /// <summary>
  /// Called each time an exception occurs during formula parsing.
  /// </summary>
  /// <param name="context"></param>
  /// <param name="ex"></param>
  void Log(ParsingContext context, Exception ex);

  /// <summary>
  /// Called each time information should be logged during formula parsing.
  /// </summary>
  /// <param name="context"></param>
  /// <param name="message"></param>
  void Log(ParsingContext context, string message);

  /// <summary>
  /// Called to log a message outside the parsing context.
  /// </summary>
  /// <param name="message"></param>
  void Log(string message);

  /// <summary>
  /// Called each time a cell within the calc chain is accessed during formula parsing.
  /// </summary>
  void LogCellCounted();

  /// <summary>
  /// Called each time a function is called during formula parsing.
  /// </summary>
  /// <param name="func"></param>
  void LogFunction(string func);

  /// <summary>
  /// Some functions measure performance, if so this function will be called.
  /// </summary>
  /// <param name="func"></param>
  /// <param name="milliseconds"></param>
  void LogFunction(string func, long milliseconds);
}
