Index: base/logging.cc |
diff --git a/base/logging.cc b/base/logging.cc |
index 0771b47c182e5c18c868f1124a0784bf411d74a9..98cecd094fd84e7312c9a3e9998dfb44cfd05925 100644 |
--- a/base/logging.cc |
+++ b/base/logging.cc |
@@ -13,6 +13,8 @@ |
#if defined(OS_WIN) |
#include <io.h> |
#include <windows.h> |
+#include "base/files/file_path.h" |
+#include "base/files/file_util.h" |
typedef HANDLE FileHandle; |
typedef HANDLE MutexHandle; |
// Windows warns on using write(). It prefers _write(). |
@@ -287,24 +289,13 @@ |
FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, |
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr); |
if (g_log_file == INVALID_HANDLE_VALUE || g_log_file == nullptr) { |
- // We are intentionally not using FilePath or FileUtil here to reduce the |
- // dependencies of the logging implementation. For e.g. FilePath and |
- // FileUtil depend on shell32 and user32.dll. This is not acceptable for |
- // some consumers of base logging like chrome_elf, etc. |
- // Please don't change the code below to use FilePath. |
// try the current directory |
- wchar_t system_buffer[MAX_PATH]; |
- system_buffer[0] = 0; |
- DWORD len = ::GetCurrentDirectory(arraysize(system_buffer), |
- system_buffer); |
- if (len == 0 || len > arraysize(system_buffer)) |
+ base::FilePath file_path; |
+ if (!base::GetCurrentDirectory(&file_path)) |
return false; |
- *g_log_file_name = system_buffer; |
- // Append a trailing backslash if needed. |
- if (g_log_file_name->back() != L'\\') |
- *g_log_file_name += L"\\"; |
- *g_log_file_name += L"debug.log"; |
+ *g_log_file_name = file_path.Append( |
+ FILE_PATH_LITERAL("debug.log")).value(); |
g_log_file = CreateFile(g_log_file_name->c_str(), FILE_APPEND_DATA, |
FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, |