/*
 * Copyright (c) Robert Bosch GmbH. All rights reserved.
 */
package org.eclipse.blockchain.core.log;


/**
 * @author PKI8COB
 */
public interface IEthereumLogger {

  /**
   * This is used to log information into the ethereum console
   *
   * @param content
   * @param methodName
   * @param parameters
   */
  void log(String content);

  /**
   * This is used to log error into the ethereum console
   *
   * @param content
   * @param methodName
   */
  void errorLog(String content);
}
