|
10 | 10 | #include "driver_discovery.h"
|
11 | 11 | #include <iostream>
|
12 | 12 |
|
| 13 | +#ifdef __linux__ |
| 14 | +#include <unistd.h> |
| 15 | +#include <sys/types.h> |
| 16 | +#include <pwd.h> |
| 17 | +#endif // __linux__ |
| 18 | + |
13 | 19 | namespace loader
|
14 | 20 | {
|
15 | 21 | ///////////////////////////////////////////////////////////////////////////////
|
@@ -261,16 +267,49 @@ namespace loader
|
261 | 267 | auto discoveredDrivers = discoverEnabledDrivers();
|
262 | 268 | std::string loadLibraryErrorValue;
|
263 | 269 |
|
| 270 | + auto log_directory = getenv_string("ZEL_LOADER_LOG_DIR"); |
| 271 | + if (log_directory.empty()) { |
| 272 | + std::string home_dir; |
| 273 | +#ifdef _WIN32 |
| 274 | + home_dir = getenv_string("USERPROFILE"); |
| 275 | + if (home_dir == ""){ |
| 276 | + auto home_drive = getenv_string("HOMEDRIVE"); |
| 277 | + auto home_path = getenv_string("HOMEPATH"); |
| 278 | + if ((home_drive != "") && (home_path != "")) { |
| 279 | + home_dir = home_drive + home_path; |
| 280 | + } else { |
| 281 | + home_dir = "."; |
| 282 | + } |
| 283 | + } |
| 284 | + log_directory = home_dir + "\\" + LOADER_LOG_FILE_DIRECTORY; |
| 285 | +#else |
| 286 | + home_dir = getenv_string("HOME"); |
264 | 287 |
|
| 288 | + if (home_dir == "") { |
| 289 | + auto pwdir = getpwuid(getuid())->pw_dir; |
| 290 | + home_dir = (pwdir == NULL) ? "." : std::string(pwdir); |
| 291 | + } |
| 292 | + log_directory = home_dir + "/" + LOADER_LOG_FILE_DIRECTORY; |
| 293 | +#endif |
| 294 | + } |
265 | 295 | auto loader_file = getenv_string("ZEL_LOADER_LOG_FILE");
|
266 | 296 | if (loader_file.empty()){
|
267 |
| - loader_file = LOADER_LOG_FILE_DEFAULT; |
| 297 | + loader_file = LOADER_LOG_FILE; |
| 298 | + } else { |
| 299 | + auto log_depr_msg = "ZEL_LOADER_LOG_FILE will be deprecated in a future release"; |
| 300 | + std::cout << log_depr_msg << std::endl; |
268 | 301 | }
|
269 | 302 |
|
| 303 | + std::string full_log_file_path = ""; |
| 304 | +#ifdef _WIN32 |
| 305 | + full_log_file_path = log_directory + "\\" + loader_file; |
| 306 | +#else |
| 307 | + full_log_file_path = log_directory + "/" + loader_file; |
| 308 | +#endif |
270 | 309 | auto logging_enabled = getenv_tobool( "ZEL_ENABLE_LOADER_LOGGING" );
|
271 | 310 |
|
272 | 311 | auto log_level = getenv_string("ZEL_LOADER_LOGGING_LEVEL");
|
273 |
| - zel_logger = std::make_shared<Logger>("ze_loader", loader_file, !log_level.empty() ? log_level : "warn", logging_enabled); |
| 312 | + zel_logger = std::make_shared<Logger>("ze_loader", full_log_file_path, !log_level.empty() ? log_level : "warn", logging_enabled); |
274 | 313 | if ((log_level == "trace") && !debugTraceEnabled) {
|
275 | 314 | debugTraceEnabled = true;
|
276 | 315 | zel_logger->log_to_console = false;
|
|
0 commit comments