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 = "";

Reply via email to