package org.acra.log;

/**
 * Responsible for providing ACRA classes with a platform neutral way of logging.
 * <p>
 * One reason for using this mechanism is to allow ACRA classes to use a logging system,
 * but be able to execute in a test environment outside of an Android JVM.
 * </p>
 *
 * @author William Ferguson
 * @since 4.3.0
 */
public interface ACRALog {
    public int v(java.lang.String tag, java.lang.String msg);

    public int v(java.lang.String tag, java.lang.String msg, java.lang.Throwable tr);

    public int d(java.lang.String tag, java.lang.String msg);

    public int d(java.lang.String tag, java.lang.String msg, java.lang.Throwable tr);

    public int i(java.lang.String tag, java.lang.String msg);

    public int i(java.lang.String tag, java.lang.String msg, java.lang.Throwable tr);

    public int w(java.lang.String tag, java.lang.String msg);

    public int w(java.lang.String tag, java.lang.String msg, java.lang.Throwable tr);

    //public native  boolean isLoggable(java.lang.String tag, int level);
    public int w(java.lang.String tag, java.lang.Throwable tr);

    public int e(java.lang.String tag, java.lang.String msg);

    public int e(java.lang.String tag, java.lang.String msg, java.lang.Throwable tr);

    public java.lang.String getStackTraceString(java.lang.Throwable tr);
    //public native  int println(int priority, java.lang.String tag, java.lang.String msg);
}
