aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/epee/include/misc_log_ex.h3
-rw-r--r--src/simplewallet/simplewallet.cpp24
2 files changed, 23 insertions, 4 deletions
diff --git a/contrib/epee/include/misc_log_ex.h b/contrib/epee/include/misc_log_ex.h
index 42adc7c43..2adac7f2f 100644
--- a/contrib/epee/include/misc_log_ex.h
+++ b/contrib/epee/include/misc_log_ex.h
@@ -861,7 +861,8 @@ namespace log_space
std::string::size_type a = m_default_log_file.rfind('.');
if ( a != std::string::npos )
m_default_log_file.erase( a, m_default_log_file.size());
- m_default_log_file += ".log";
+ if ( ! m_default_log_file.empty() )
+ m_default_log_file += ".log";
return true;
}
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index ed3ab4470..0c91d9787 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -1815,8 +1815,23 @@ int main(int argc, char* argv[])
command_line::add_arg(desc_params, arg_log_level);
bf::path default_log {log_space::log_singletone::get_default_log_folder()};
- default_log /= log_space::log_singletone::get_default_log_file();
- std::cout << sw::tr("default_log: ") << default_log << ENDL;
+ std::string log_file_name = log_space::log_singletone::get_default_log_file();
+ if (log_file_name.empty())
+ {
+ // Sanity check: File path should also be empty if file name is. If not,
+ // this would be a problem in epee's discovery of current process's file
+ // path.
+ if (! default_log.empty())
+ {
+ fail_msg_writer() << sw::tr("Unexpected empty log file name in presence of non-empty file path");
+ return false;
+ }
+ // epee didn't find path to executable from argv[0], so use this default file name.
+ log_file_name = "simplewallet.log";
+ // The full path will use cwd because epee also returned an empty default log folder.
+ }
+ default_log /= log_file_name;
+
command_line::add_arg(desc_params, arg_log_file, default_log.string());
command_line::add_arg(desc_params, arg_restore_deterministic_wallet );
@@ -1861,7 +1876,9 @@ int main(int argc, char* argv[])
return 0;
// log_file_path
- // default: <simplewallet_path>/simplewallet.log
+ // default: < argv[0] directory >/simplewallet.log
+ // so if ran as "simplewallet" (no path), log file will be in cwd
+ //
// if log-file argument given:
// absolute path
// relative path: relative to cwd
@@ -1884,6 +1901,7 @@ int main(int argc, char* argv[])
if(command_line::has_arg(vm, arg_log_level))
log_level = command_line::get_arg(vm, arg_log_level);
LOG_PRINT_L0("Setting log level = " << log_level);
+ LOG_PRINT_L0(sw::tr("default_log: ") << default_log.string());
message_writer(epee::log_space::console_color_white, true) << boost::format(sw::tr("Logging at log level %d to %s")) %
log_level % log_file_path.string();
log_space::get_set_log_detalisation_level(true, log_level);