Add logger for debugging (#25)
* Add logger for debugging * Update CameraLogger.java * Fix #27 * More log messagespull/29/head
parent
51f90275f5
commit
53bb5baf42
@ -0,0 +1,57 @@ |
||||
package com.otaliastudios.cameraview; |
||||
|
||||
|
||||
import android.support.test.filters.SmallTest; |
||||
import android.support.test.runner.AndroidJUnit4; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import static org.junit.Assert.*; |
||||
|
||||
@RunWith(AndroidJUnit4.class) |
||||
@SmallTest |
||||
public class CameraLoggerTest { |
||||
|
||||
@Test |
||||
public void testLoggerLevels() { |
||||
CameraLogger logger = CameraLogger.create("logger"); |
||||
|
||||
// Verbose
|
||||
CameraLogger.setLogLevel(CameraLogger.LEVEL_VERBOSE); |
||||
logger.i("i"); |
||||
assertEquals(CameraLogger.lastMessage, "i"); |
||||
logger.w("w"); |
||||
assertEquals(CameraLogger.lastMessage, "w"); |
||||
logger.e("e"); |
||||
assertEquals(CameraLogger.lastMessage, "e"); |
||||
|
||||
// Warning
|
||||
CameraLogger.lastMessage = null; |
||||
CameraLogger.setLogLevel(CameraLogger.LEVEL_WARNING); |
||||
logger.i("i"); |
||||
assertNull(CameraLogger.lastMessage); |
||||
logger.w("w"); |
||||
assertEquals(CameraLogger.lastMessage, "w"); |
||||
logger.e("e"); |
||||
assertEquals(CameraLogger.lastMessage, "e"); |
||||
|
||||
// Error
|
||||
CameraLogger.lastMessage = null; |
||||
CameraLogger.setLogLevel(CameraLogger.LEVEL_ERROR); |
||||
logger.i("i"); |
||||
assertNull(CameraLogger.lastMessage); |
||||
logger.w("w"); |
||||
assertNull(CameraLogger.lastMessage); |
||||
logger.e("e"); |
||||
assertEquals(CameraLogger.lastMessage, "e"); |
||||
} |
||||
|
||||
@Test |
||||
public void testLoggerObjectArray() { |
||||
CameraLogger.setLogLevel(CameraLogger.LEVEL_VERBOSE); |
||||
CameraLogger logger = CameraLogger.create("logger"); |
||||
logger.i("test", "logger", 10, null); |
||||
assertEquals(CameraLogger.lastMessage, "test logger 10 null"); |
||||
} |
||||
} |
@ -0,0 +1,92 @@ |
||||
package com.otaliastudios.cameraview; |
||||
|
||||
import android.support.annotation.IntDef; |
||||
import android.util.Log; |
||||
|
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
|
||||
/** |
||||
* Utility class that can log traces and info. |
||||
*/ |
||||
public final class CameraLogger { |
||||
|
||||
public final static int LEVEL_VERBOSE = 0; |
||||
public final static int LEVEL_WARNING = 1; |
||||
public final static int LEVEL_ERROR = 2; |
||||
|
||||
@IntDef({LEVEL_VERBOSE, LEVEL_WARNING, LEVEL_ERROR}) |
||||
@Retention(RetentionPolicy.SOURCE) |
||||
@interface LogLevel {} |
||||
|
||||
private static int level = LEVEL_ERROR; |
||||
|
||||
public static void setLogLevel(int logLevel) { |
||||
level = logLevel; |
||||
} |
||||
|
||||
static String lastMessage; |
||||
static String lastTag; |
||||
|
||||
static CameraLogger create(String tag) { |
||||
return new CameraLogger(tag); |
||||
} |
||||
|
||||
private String mTag; |
||||
|
||||
private CameraLogger(String tag) { |
||||
mTag = tag; |
||||
} |
||||
|
||||
public void i(String message) { |
||||
if (should(LEVEL_VERBOSE)) { |
||||
Log.i(mTag, message); |
||||
lastMessage = message; |
||||
lastTag = mTag; |
||||
} |
||||
} |
||||
|
||||
public void w(String message) { |
||||
if (should(LEVEL_WARNING)) { |
||||
Log.w(mTag, message); |
||||
lastMessage = message; |
||||
lastTag = mTag; |
||||
} |
||||
} |
||||
|
||||
public void e(String message) { |
||||
if (should(LEVEL_ERROR)) { |
||||
Log.w(mTag, message); |
||||
lastMessage = message; |
||||
lastTag = mTag; |
||||
} |
||||
} |
||||
|
||||
private boolean should(int messageLevel) { |
||||
return level <= messageLevel; |
||||
} |
||||
|
||||
private String string(int messageLevel, Object... ofData) { |
||||
String message = ""; |
||||
if (should(messageLevel)) { |
||||
for (Object o : ofData) { |
||||
message += String.valueOf(o); |
||||
message += " "; |
||||
} |
||||
} |
||||
return message.trim(); |
||||
} |
||||
|
||||
public void i(Object... data) { |
||||
i(string(LEVEL_VERBOSE, data)); |
||||
} |
||||
|
||||
public void w(Object... data) { |
||||
w(string(LEVEL_WARNING, data)); |
||||
} |
||||
|
||||
public void e(Object... data) { |
||||
e(string(LEVEL_ERROR, data)); |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue