diff --git a/jni.go b/jni.go
index 2ae5c73..23f0cab 100644
--- a/jni.go
+++ b/jni.go
@@ -53,18 +53,13 @@
 	jCtx := jutil.Object(uintptr(unsafe.Pointer(jContext)))
 	jOpts := jutil.Object(uintptr(unsafe.Pointer(jOptions)))
 
-	level, err := jutil.GetIntOption(env, jOpts, "io.v.v23.LOG_LEVEL")
-	if err != nil {
-		jutil.JThrowV(env, err)
-		return nil
-	}
-	logToStderr, err := jutil.GetBooleanOption(env, jOpts, "io.v.v23.LOG_TO_STDERR")
+	dir, toStderr, level, vmodule, err := loggingOpts(env, jOpts)
 	if err != nil {
 		jutil.JThrowV(env, err)
 		return nil
 	}
 	logger := vlog.NewLogger("jlog")
-	logger.Configure(vlog.OverridePriorConfiguration(true), vlog.Level(level), vlog.LogToStderr(logToStderr))
+	logger.Configure(dir, toStderr, level, vmodule)
 	// Configure the vlog package to use the new logger.
 	vlog.Log = logger
 	// Attach the new logger to the context.
@@ -82,5 +77,33 @@
 	return C.jobject(unsafe.Pointer(jNewCtx))
 }
 
+func loggingOpts(env jutil.Env, jOpts jutil.Object) (dir vlog.LogDir, toStderr vlog.LogToStderr, level vlog.Level, vmodule vlog.ModuleSpec, err error) {
+	var d string
+	d, err = jutil.GetStringOption(env, jOpts, "io.v.v23.LOG_DIR")
+	if err != nil {
+		return
+	}
+	dir = vlog.LogDir(d)
+	var s bool
+	s, err = jutil.GetBooleanOption(env, jOpts, "io.v.v23.LOG_TO_STDERR")
+	if err != nil {
+		return
+	}
+	toStderr = vlog.LogToStderr(s)
+	var l int
+	l, err = jutil.GetIntOption(env, jOpts, "io.v.v23.LOG_VLEVEL")
+	if err != nil {
+		return
+	}
+	level = vlog.Level(l)
+	var m string
+	m, err = jutil.GetStringOption(env, jOpts, "io.v.v23.LOG_VMODULE")
+	if err != nil {
+		return
+	}
+	err = vmodule.Set(m)
+	return
+}
+
 func main() {
 }
diff --git a/jni_android.go b/jni_android.go
index 9e0d6c5..fe97370 100644
--- a/jni_android.go
+++ b/jni_android.go
@@ -25,15 +25,17 @@
 	jCtx := jutil.Object(uintptr(unsafe.Pointer(jContext)))
 	jOpts := jutil.Object(uintptr(unsafe.Pointer(jOptions)))
 
-	level, err := jutil.GetIntOption(env, jOpts, "io.v.v23.LOG_LEVEL")
+	_, _, level, vmodule, err := loggingOpts(env, jOpts)
 	if err != nil {
 		jutil.JThrowV(env, err)
 		return nil
 	}
-	// Send all vlog logs to stderr so that we don't crash on android trying to create a log file.
-	vlog.Log.Configure(vlog.OverridePriorConfiguration(true), vlog.LogToStderr(true), vlog.Level(level))
+	// Setup vlog logger.  We force the logToStderr option so that we don't crash on android trying
+	// to create a log file.
+	vlog.Log.Configure(vlog.OverridePriorConfiguration(true), vlog.LogToStderr(true), level, vmodule)
+
 	// Setup the android logger.
-	logger := NewLogger("alog", level)
+	logger := NewLogger("alog", int(level))
 	// Attach the new logger to the context.
 	ctx, err := jcontext.GoContext(env, jCtx)
 	if err != nil {
