diff --git a/.gitignore b/.gitignore
index 0ebdfa28e55979ead18fd82bc0d23819d07e61b5..e05e5ea8586f718f1d80f15121d9e6f37f776cfa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,9 +21,10 @@
 # Visual Studio user options
 /win32/tsk-win.suo
 
+# Make crud
 *.o
 *.lo
 *.la
 Makefile
 .deps
-.libs
+.libs
\ No newline at end of file
diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.cpp b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
index 89cd3e4801eb2ed54a11dba50cacb33d4e2e0ff9..d2764cf5087c839c39bf74e9b832d14fec373ae8 100644
--- a/bindings/java/jni/dataModel_SleuthkitJNI.cpp
+++ b/bindings/java/jni/dataModel_SleuthkitJNI.cpp
@@ -808,6 +808,24 @@ Java_org_sleuthkit_datamodel_SleuthkitJNI_getVersionNat(JNIEnv * env,
     return jversion;
 }
 
+/*
+ * Enable verbose logging and redirect stderr to the given log file.
+ * @param env pointer to java environment this was called from
+ * @param obj the java object this was called from
+ * @param logPath The log file to append to.
+ */
+JNIEXPORT void JNICALL
+Java_org_sleuthkit_datamodel_SleuthkitJNI_startVerboseLoggingNat
+    (JNIEnv * env, jclass obj, jstring logPath)
+{
+    jboolean isCopy;
+    char *str8 = (char *) env->GetStringUTFChars(logPath, &isCopy);
+    if (freopen(str8, "a", stderr) == NULL) {
+        throwTskError(env, "Couldn't open verbose log file for appending.");
+        return;
+    }
+    tsk_verbose++;
+}
 
 /*
  * Create an index for the given database path
@@ -825,6 +843,7 @@ Java_org_sleuthkit_datamodel_SleuthkitJNI_createLookupIndexNat (JNIEnv * env,
     TSK_HDB_OPEN_ENUM flags = TSK_HDB_OPEN_NONE;
     TSK_HDB_INFO * temp = tsk_hdb_open(dbPathT, flags);
     if (temp == NULL) {
+        throwTskError(env);
         return;
     }
 
diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.h b/bindings/java/jni/dataModel_SleuthkitJNI.h
index 0171ec56ca4bf72b95fa8204a78908c99938878a..99ac6161911c87a0a6dadd3bd16caad1ab4f587c 100644
--- a/bindings/java/jni/dataModel_SleuthkitJNI.h
+++ b/bindings/java/jni/dataModel_SleuthkitJNI.h
@@ -15,6 +15,14 @@ extern "C" {
 JNIEXPORT jstring JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_getVersionNat
   (JNIEnv *, jclass);
 
+/*
+ * Class:     org_sleuthkit_datamodel_SleuthkitJNI
+ * Method:    startVerboseLoggingNat
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_startVerboseLoggingNat
+  (JNIEnv *, jclass, jstring);
+
 /*
  * Class:     org_sleuthkit_datamodel_SleuthkitJNI
  * Method:    newCaseDbNat
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
index c7632db458b3dea6fada0caa418eb54dfbefa239..f7a59fc8f27ffc5b1bbc564bd7698da8021ca023 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
@@ -25,6 +25,7 @@
 public class SleuthkitJNI {
 	//Native methods
 	private static native String getVersionNat();
+	private static native void startVerboseLoggingNat(String logPath);
 	
 	//database
 	private static native long newCaseDbNat(String dbPath) throws TskException;
@@ -224,6 +225,15 @@ static CaseDbHandle openCaseDb(String path) throws TskException {
 	public static String getVersion(){
 		return getVersionNat();
 	}
+	
+	/**
+	 * Enable verbose logging and redirect stderr to the given log file.
+	 * @return the version string
+	 */
+	public static void startVerboseLogging(String logPath) {
+		startVerboseLoggingNat(logPath);
+	}
+
 
 	/**
 	 * open the image and return the image info pointer