Commit 52c81089 authored by Tatiana Buldina's avatar Tatiana Buldina Committed by Commit Bot

[ChromeDriver] Add readable timestamp to log in Py tests

Bug: chromedriver:1231
Change-Id: I4be96e0105cc6e854a7ef01ad9d0dc4dd965ec6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1627552Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Commit-Queue: Tatiana Buldina <buldina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#663791}
parent 1b62935f
...@@ -39,6 +39,8 @@ Log::Level g_log_level = Log::kWarning; ...@@ -39,6 +39,8 @@ Log::Level g_log_level = Log::kWarning;
int64_t g_start_time = 0; int64_t g_start_time = 0;
bool readable_timestamp;
// Array indices are the Log::Level enum values. // Array indices are the Log::Level enum values.
const char* const kLevelToName[] = { const char* const kLevelToName[] = {
"ALL", // kAll "ALL", // kAll
...@@ -109,13 +111,47 @@ bool HandleLogMessage(int severity, ...@@ -109,13 +111,47 @@ bool HandleLogMessage(int severity,
if (level >= g_log_level) { if (level >= g_log_level) {
const char* level_name = LevelToName(level); const char* level_name = LevelToName(level);
std::string entry = base::StringPrintf( std::string entry;
"[%.3lf][%s]: %s",
base::TimeDelta(base::TimeTicks::Now() - if (readable_timestamp) {
base::TimeTicks::UnixEpoch()) #if defined(OS_WIN)
.InSecondsF(), SYSTEMTIME local_time;
level_name, GetLocalTime(&local_time);
message.c_str());
entry = base::StringPrintf(
"[%02d-%02d-%04d %02d:%02d:%02d.%03d][%s]: %s",
local_time.wMonth, local_time.wDay, local_time.wYear,
local_time.wHour, local_time.wMinute, local_time.wSecond,
local_time.wMilliseconds,
level_name,
message.c_str());
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
timeval tv;
gettimeofday(&tv, nullptr);
time_t t = tv.tv_sec;
struct tm local_time;
localtime_r(&t, &local_time);
struct tm* tm_time = &local_time;
entry = base::StringPrintf(
"[%02d-%02d-%04d %02d:%02d:%02d.%06ld][%s]: %s",
1 + tm_time->tm_mon, tm_time->tm_mday, 1900 + tm_time->tm_year,
tm_time->tm_hour, tm_time->tm_min, tm_time->tm_sec,
static_cast<long>(tv.tv_usec),
level_name,
message.c_str());
#else
#error Unsupported platform
#endif
} else {
entry = base::StringPrintf(
"[%.3lf][%s]: %s",
base::TimeDelta(base::TimeTicks::Now() -
base::TimeTicks::UnixEpoch())
.InSecondsF(),
level_name,
message.c_str());
}
fprintf(stderr, "%s", entry.c_str()); fprintf(stderr, "%s", entry.c_str());
fflush(stderr); fflush(stderr);
} }
...@@ -245,6 +281,9 @@ bool InitLogging() { ...@@ -245,6 +281,9 @@ bool InitLogging() {
if (cmd_line->HasSwitch("append-log")) { if (cmd_line->HasSwitch("append-log")) {
logMode = FILE_PATH_LITERAL("a"); logMode = FILE_PATH_LITERAL("a");
} }
if (cmd_line->HasSwitch("readable-timestamp")) {
readable_timestamp = true;
}
#if defined(OS_WIN) #if defined(OS_WIN)
FILE* redir_stderr = _wfreopen(log_path.value().c_str(), logMode, stderr); FILE* redir_stderr = _wfreopen(log_path.value().c_str(), logMode, stderr);
#else #else
......
...@@ -427,6 +427,8 @@ int main(int argc, char *argv[]) { ...@@ -427,6 +427,8 @@ int main(int argc, char *argv[]) {
"whitelisted-ips", "whitelisted-ips",
"comma-separated whitelist of remote IP addresses " "comma-separated whitelist of remote IP addresses "
"which are allowed to connect to ChromeDriver", "which are allowed to connect to ChromeDriver",
"readable-timestamp",
"add readable timestamps to log",
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
"disable-dev-shm-usage", "disable-dev-shm-usage",
"do not use /dev/shm " "do not use /dev/shm "
......
...@@ -34,6 +34,7 @@ class Server(object): ...@@ -34,6 +34,7 @@ class Server(object):
if log_path: if log_path:
chromedriver_args.extend(['--log-path=%s' % log_path]) chromedriver_args.extend(['--log-path=%s' % log_path])
chromedriver_args.extend(['--append-log']) chromedriver_args.extend(['--append-log'])
chromedriver_args.extend(['--readable-timestamp'])
if verbose: if verbose:
chromedriver_args.extend(['--verbose', chromedriver_args.extend(['--verbose',
'--vmodule=*/chrome/test/chromedriver/*=3']) '--vmodule=*/chrome/test/chromedriver/*=3'])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment