используйте freopen для перенаправления stdout и stderr
у меня работает родной код ниже.
// cachedir is get from java code 'Context.getExternalCacheDir().getAbsolutePath()'
auto fullpath = cachedir + "/log";
freopen(fullpath.c_str(),"w",stderr);
std::cerr << "hello, world\n"; // will write to file located at external storage