Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1258)

Unified Diff: chrome/common/logging_chrome.cc

Issue 2901173002: Move RedirectChromeLogging to src/chromeos. (Closed)
Patch Set: Rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/logging_chrome.h ('k') | chrome/test/base/in_process_browser_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/logging_chrome.cc
diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc
index 4e2df8c8efdf47d8b3ab16953696495eaf4d7c70..8f676714335e5ad2481bdccc82fea7ac4eca6048 100644
--- a/chrome/common/logging_chrome.cc
+++ b/chrome/common/logging_chrome.cc
@@ -47,7 +47,6 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/threading/thread_restrictions.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
@@ -66,11 +65,12 @@
#include "chrome/install_static/install_details.h"
#endif
+namespace logging {
namespace {
// When true, this means that error dialogs should not be shown.
bool dialogs_are_suppressed_ = false;
-logging::ScopedLogAssertHandler* assert_handler_ = nullptr;
+ScopedLogAssertHandler* assert_handler_ = nullptr;
// This should be true for exactly the period between the end of
// InitChromeLogging() and the beginning of CleanupChromeLogging().
@@ -108,8 +108,8 @@ void SuppressDialogs() {
if (dialogs_are_suppressed_)
return;
- assert_handler_ = new logging::ScopedLogAssertHandler(
- base::Bind(SilentRuntimeAssertHandler));
+ assert_handler_ =
+ new ScopedLogAssertHandler(base::Bind(SilentRuntimeAssertHandler));
#if defined(OS_WIN)
UINT new_flags = SEM_FAILCRITICALERRORS |
@@ -126,39 +126,37 @@ void SuppressDialogs() {
} // anonymous namespace
-namespace logging {
-
-LoggingDestination DetermineLogMode(const base::CommandLine& command_line) {
- // only use OutputDebugString in debug mode
+LoggingDestination DetermineLoggingDestination(
+ const base::CommandLine& command_line) {
+// only use OutputDebugString in debug mode
#ifdef NDEBUG
bool enable_logging = false;
const char *kInvertLoggingSwitch = switches::kEnableLogging;
- const logging::LoggingDestination kDefaultLoggingMode = logging::LOG_TO_FILE;
+ const LoggingDestination kDefaultLoggingMode = LOG_TO_FILE;
#else
bool enable_logging = true;
const char *kInvertLoggingSwitch = switches::kDisableLogging;
- const logging::LoggingDestination kDefaultLoggingMode = logging::LOG_TO_ALL;
+ const LoggingDestination kDefaultLoggingMode = LOG_TO_ALL;
#endif
if (command_line.HasSwitch(kInvertLoggingSwitch))
enable_logging = !enable_logging;
- logging::LoggingDestination log_mode;
+ LoggingDestination log_mode;
if (enable_logging) {
// Let --enable-logging=stderr force only stderr, particularly useful for
// non-debug builds where otherwise you can't get logs to stderr at all.
if (command_line.GetSwitchValueASCII(switches::kEnableLogging) == "stderr")
- log_mode = logging::LOG_TO_SYSTEM_DEBUG_LOG;
+ log_mode = LOG_TO_SYSTEM_DEBUG_LOG;
else
log_mode = kDefaultLoggingMode;
} else {
- log_mode = logging::LOG_NONE;
+ log_mode = LOG_NONE;
}
return log_mode;
}
#if defined(OS_CHROMEOS)
-namespace {
base::FilePath SetUpSymlinkIfNeeded(const base::FilePath& symlink_path,
bool new_log) {
DCHECK(!symlink_path.empty());
@@ -196,8 +194,6 @@ void RemoveSymlinkAndLog(const base::FilePath& link_path,
DPLOG(WARNING) << "Unable to unlink log file " << target_path.value();
}
-} // anonymous namespace
-
base::FilePath GetSessionLogDir(const base::CommandLine& command_line) {
base::FilePath log_dir;
std::string log_dir_str;
@@ -228,39 +224,6 @@ base::FilePath GetSessionLogFile(const base::CommandLine& command_line) {
return GetSessionLogDir(command_line).Append(GetLogFileName().BaseName());
}
-void RedirectChromeLogging(const base::CommandLine& command_line) {
- if (chrome_logging_redirected_) {
- // TODO(nkostylev): Support multiple active users. http://crbug.com/230345
- LOG(WARNING) << "NOT redirecting logging for multi-profiles case.";
- return;
- }
-
- DCHECK(!chrome_logging_redirected_) <<
- "Attempted to redirect logging when it was already initialized.";
-
- // Redirect logs to the session log directory, if set. Otherwise
- // defaults to the profile dir.
- base::FilePath log_path = GetSessionLogFile(command_line);
-
- // Creating symlink causes us to do blocking IO on UI thread.
- // Temporarily allow it until we fix http://crbug.com/61143
- base::ThreadRestrictions::ScopedAllowIO allow_io;
- // Always force a new symlink when redirecting.
- base::FilePath target_path = SetUpSymlinkIfNeeded(log_path, true);
-
- // ChromeOS always logs through the symlink, so it shouldn't be
- // deleted if it already exists.
- logging::LoggingSettings settings;
- settings.logging_dest = DetermineLogMode(command_line);
- settings.log_file = log_path.value().c_str();
- if (!logging::InitLogging(settings)) {
- DLOG(ERROR) << "Unable to initialize logging to " << log_path.value();
- RemoveSymlinkAndLog(log_path, target_path);
- } else {
- chrome_logging_redirected_ = true;
- }
-}
-
#endif // OS_CHROMEOS
void InitChromeLogging(const base::CommandLine& command_line,
@@ -268,7 +231,7 @@ void InitChromeLogging(const base::CommandLine& command_line,
DCHECK(!chrome_logging_initialized_) <<
"Attempted to initialize logging when it was already initialized.";
- LoggingDestination logging_dest = DetermineLogMode(command_line);
+ LoggingDestination logging_dest = DetermineLoggingDestination(command_line);
LogLockingState log_locking_state = LOCK_LOG_FILE;
base::FilePath log_path;
#if defined(OS_CHROMEOS)
@@ -291,23 +254,23 @@ void InitChromeLogging(const base::CommandLine& command_line,
// symlink if we've been asked to delete the old log, since that
// indicates the start of a new session.
target_path = SetUpSymlinkIfNeeded(
- log_path, delete_old_log_file == logging::DELETE_OLD_LOG_FILE);
+ log_path, delete_old_log_file == DELETE_OLD_LOG_FILE);
// Because ChromeOS manages the move to a new session by redirecting
// the link, it shouldn't remove the old file in the logging code,
// since that will remove the newly created link instead.
- delete_old_log_file = logging::APPEND_TO_OLD_LOG_FILE;
+ delete_old_log_file = APPEND_TO_OLD_LOG_FILE;
#endif
} else {
log_locking_state = DONT_LOCK_LOG_FILE;
}
- logging::LoggingSettings settings;
+ LoggingSettings settings;
settings.logging_dest = logging_dest;
settings.log_file = log_path.value().c_str();
settings.lock_log = log_locking_state;
settings.delete_old = delete_old_log_file;
- bool success = logging::InitLogging(settings);
+ bool success = InitLogging(settings);
#if defined(OS_CHROMEOS)
if (!success) {
@@ -328,13 +291,13 @@ void InitChromeLogging(const base::CommandLine& command_line,
// Default to showing error dialogs.
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kNoErrorDialogs))
- logging::SetShowErrorDialogs(true);
+ SetShowErrorDialogs(true);
// we want process and thread IDs because we have a lot of things running
- logging::SetLogItems(true, // enable_process_id
- true, // enable_thread_id
- true, // enable_timestamp
- false); // enable_tickcount
+ SetLogItems(true, // enable_process_id
+ true, // enable_thread_id
+ true, // enable_timestamp
+ false); // enable_tickcount
// We call running in unattended mode "headless", and allow
// headless mode to be configured either by the Environment
@@ -348,17 +311,17 @@ void InitChromeLogging(const base::CommandLine& command_line,
// Use a minimum log level if the command line asks for one. Ignore this
// switch if there's vlog level switch present too (as both of these switches
// refer to the same underlying log level, and the vlog level switch has
- // already been processed inside logging::InitLogging). If there is neither
+ // already been processed inside InitLogging). If there is neither
// log level nor vlog level specified, then just leave the default level
// (INFO).
if (command_line.HasSwitch(switches::kLoggingLevel) &&
- logging::GetMinLogLevel() >= 0) {
+ GetMinLogLevel() >= 0) {
std::string log_level =
command_line.GetSwitchValueASCII(switches::kLoggingLevel);
int level = 0;
if (base::StringToInt(log_level, &level) && level >= 0 &&
level < LOG_NUM_SEVERITIES) {
- logging::SetMinLogLevel(level);
+ SetMinLogLevel(level);
} else {
DLOG(WARNING) << "Bad log level: " << log_level;
}
@@ -366,10 +329,10 @@ void InitChromeLogging(const base::CommandLine& command_line,
#if defined(OS_WIN)
// Enable trace control and transport through event tracing for Windows.
- logging::LogEventProvider::Initialize(kChromeTraceProviderName);
+ LogEventProvider::Initialize(kChromeTraceProviderName);
// Enable logging to the Windows Event Log.
- logging::SetEventSourceName(base::UTF16ToASCII(
+ SetEventSourceName(base::UTF16ToASCII(
install_static::InstallDetails::Get().install_full_name()));
#endif
« no previous file with comments | « chrome/common/logging_chrome.h ('k') | chrome/test/base/in_process_browser_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698