Repository: nifi-minifi-cpp Updated Branches: refs/heads/master 8bde06b8c -> acd8c5538
MINIFICPP-337: make default log directory as logs This closes #236. Signed-off-by: Aldrin Piri <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/acd8c553 Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/acd8c553 Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/acd8c553 Branch: refs/heads/master Commit: acd8c5538e256aa229820624927836ba22daf2bf Parents: 8bde06b Author: Bin Qiu <[email protected]> Authored: Wed Jan 10 08:49:58 2018 -0800 Committer: Aldrin Piri <[email protected]> Committed: Tue Jan 16 10:53:49 2018 -0500 ---------------------------------------------------------------------- libminifi/src/core/logging/LoggerConfiguration.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/acd8c553/libminifi/src/core/logging/LoggerConfiguration.cpp ---------------------------------------------------------------------- diff --git a/libminifi/src/core/logging/LoggerConfiguration.cpp b/libminifi/src/core/logging/LoggerConfiguration.cpp index b0868e4..dac441b 100644 --- a/libminifi/src/core/logging/LoggerConfiguration.cpp +++ b/libminifi/src/core/logging/LoggerConfiguration.cpp @@ -19,6 +19,8 @@ */ #include "core/logging/LoggerConfiguration.h" +#include <sys/stat.h> +#include <unistd.h> #include <algorithm> #include <vector> #include <queue> @@ -110,6 +112,19 @@ std::shared_ptr<internal::LoggerNamespace> LoggerConfiguration::initialize_names if (!logger_properties->get(appender_key + ".file_name", file_name)) { file_name = "minifi-app.log"; } + std::string directory = ""; + directory = logger_properties->getHome(); + if (!directory.empty()) { + // Create the log directory if needed + directory += "/logs"; + struct stat logDirStat; + if (stat(directory.c_str(), &logDirStat) != 0 || !S_ISDIR(logDirStat.st_mode)) { + if (mkdir(directory.c_str(), 0777) == -1) { + exit(1); + } + } + file_name = directory + "/" + file_name; + } int max_files = 3; std::string max_files_str = "";
