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