drop custom prefix option (#898)

This commit is contained in:
Sergiu Deitsch 2023-02-24 20:40:09 +01:00 committed by GitHub
parent af8344bbbe
commit 1b59cb0905
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 50 additions and 1761 deletions

View File

@ -7,14 +7,13 @@ jobs:
defaults: defaults:
run: run:
shell: bash shell: bash
name: Emscripten-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}} name: Emscripten-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: emscripten/emsdk container: emscripten/emsdk
strategy: strategy:
fail-fast: true fail-fast: true
matrix: matrix:
build_type: [Release, Debug] build_type: [Release, Debug]
extra: [no-custom-prefix, custom-prefix]
lib: [static] lib: [static]
std: [98, 11, 14, 17, 20] std: [98, 11, 14, 17, 20]
@ -49,7 +48,6 @@ jobs:
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \ -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \
-DCMAKE_RANLIB=$(which emranlib) \ -DCMAKE_RANLIB=$(which emranlib) \
-DWITH_CUSTOM_PREFIX=${{matrix.extra == 'custom-prefix'}} \
-G Ninja \ -G Ninja \
-Werror -Werror

View File

@ -7,13 +7,12 @@ jobs:
defaults: defaults:
run: run:
shell: bash shell: bash
name: GCC-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}} name: GCC-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
strategy: strategy:
fail-fast: true fail-fast: true
matrix: matrix:
build_type: [Release, Debug] build_type: [Release, Debug]
extra: [no-custom-prefix, custom-prefix]
lib: [shared, static] lib: [shared, static]
std: [98, 11, 14, 17, 20] std: [98, 11, 14, 17, 20]
@ -74,7 +73,6 @@ jobs:
-DCMAKE_CXX_STANDARD=${{matrix.std}} \ -DCMAKE_CXX_STANDARD=${{matrix.std}} \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \ -DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \ -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install \
-DWITH_CUSTOM_PREFIX=${{matrix.extra == 'custom-prefix'}} \
-G Ninja \ -G Ninja \
-Werror -Werror

View File

@ -4,7 +4,7 @@ on: [push, pull_request]
jobs: jobs:
build-msvc: build-msvc:
name: ${{matrix.msvc}}-${{matrix.arch}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}} name: ${{matrix.msvc}}-${{matrix.arch}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
defaults: defaults:
run: run:
@ -17,7 +17,6 @@ jobs:
matrix: matrix:
arch: [Win32, x64] arch: [Win32, x64]
build_type: [Debug, Release] build_type: [Debug, Release]
extra: [no-custom-prefix, custom-prefix]
lib: [shared, static] lib: [shared, static]
msvc: [VS-16-2019, VS-17-2022] msvc: [VS-16-2019, VS-17-2022]
# Visual Studio 17 2022 does not support C++11 and older language standard # Visual Studio 17 2022 does not support C++11 and older language standard
@ -106,7 +105,6 @@ jobs:
-DCMAKE_EXE_LINKER_FLAGS_RELEASE='/INCREMENTAL:NO /DEBUG' ` -DCMAKE_EXE_LINKER_FLAGS_RELEASE='/INCREMENTAL:NO /DEBUG' `
-DCMAKE_INSTALL_PREFIX:PATH=./install ` -DCMAKE_INSTALL_PREFIX:PATH=./install `
-DCMAKE_MSVC_RUNTIME_LIBRARY='MultiThreaded$<$<CONFIG:Debug>:Debug>DLL' ` -DCMAKE_MSVC_RUNTIME_LIBRARY='MultiThreaded$<$<CONFIG:Debug>:Debug>DLL' `
-DWITH_CUSTOM_PREFIX=${{matrix.extra == 'custom-prefix'}} `
-G "${{matrix.generator}}" ` -G "${{matrix.generator}}" `
-Werror -Werror
@ -129,10 +127,10 @@ jobs:
--target install --target install
build-mingw: build-mingw:
name: ${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}} name: ${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
runs-on: windows-2022 runs-on: windows-2022
env: env:
BUILDDIR: 'build_${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}-${{matrix.extra}}' BUILDDIR: 'build_${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}'
defaults: defaults:
run: run:
shell: msys2 {0} shell: msys2 {0}
@ -140,7 +138,6 @@ jobs:
fail-fast: true fail-fast: true
matrix: matrix:
build_type: [Debug] build_type: [Debug]
extra: [no-custom-prefix, custom-prefix]
lib: [shared, static] lib: [shared, static]
std: [98, 11, 14, 17, 20] std: [98, 11, 14, 17, 20]
sys: [mingw32, mingw64] sys: [mingw32, mingw64]
@ -183,7 +180,6 @@ jobs:
-DCMAKE_CXX_STANDARD=${{matrix.std}} \ -DCMAKE_CXX_STANDARD=${{matrix.std}} \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \ -DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_INSTALL_PREFIX:PATH=./install \ -DCMAKE_INSTALL_PREFIX:PATH=./install \
-DWITH_CUSTOM_PREFIX=${{matrix.extra == 'custom-prefix'}} \
-G Ninja \ -G Ninja \
-Werror -Werror

View File

@ -37,7 +37,6 @@ include (GNUInstallDirs)
option (BUILD_SHARED_LIBS "Build shared libraries" ON) option (BUILD_SHARED_LIBS "Build shared libraries" ON)
option (PRINT_UNSYMBOLIZED_STACK_TRACES option (PRINT_UNSYMBOLIZED_STACK_TRACES
"Print file offsets in traces instead of symbolizing" OFF) "Print file offsets in traces instead of symbolizing" OFF)
option (WITH_CUSTOM_PREFIX "Enable support for user-generated message prefixes" ON)
option (WITH_GFLAGS "Use gflags" ON) option (WITH_GFLAGS "Use gflags" ON)
option (WITH_GTEST "Use Google Test" ON) option (WITH_GTEST "Use Google Test" ON)
option (WITH_PKGCONFIG "Enable pkg-config support" ON) option (WITH_PKGCONFIG "Enable pkg-config support" ON)
@ -694,10 +693,6 @@ if (CYGWIN OR WIN32)
target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES) target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES)
endif (CYGWIN OR WIN32) endif (CYGWIN OR WIN32)
if (WITH_CUSTOM_PREFIX)
target_compile_definitions (glog PUBLIC GLOG_CUSTOM_PREFIX_SUPPORT)
endif (WITH_CUSTOM_PREFIX)
set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}") set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}")
target_include_directories (glog BEFORE PUBLIC target_include_directories (glog BEFORE PUBLIC
@ -781,27 +776,6 @@ if (BUILD_TESTING)
target_link_libraries (logging_unittest PRIVATE ${_GLOG_TEST_LIBS}) target_link_libraries (logging_unittest PRIVATE ${_GLOG_TEST_LIBS})
if (WITH_CUSTOM_PREFIX)
add_executable (logging_custom_prefix_unittest
src/logging_custom_prefix_unittest.cc
)
target_link_libraries (logging_custom_prefix_unittest PRIVATE ${_GLOG_TEST_LIBS})
add_test (NAME logging_custom_prefix
COMMAND logging_custom_prefix_unittest)
# FIXME: Skip flaky test
set_tests_properties (logging_custom_prefix PROPERTIES SKIP_REGULAR_EXPRESSION
"Check failed: time_ns within LogTimes::LOG_PERIOD_TOL_NS of LogTimes::LOG_PERIOD_NS")
if (APPLE)
# FIXME: Skip flaky test
set_property (TEST logging_custom_prefix APPEND PROPERTY SKIP_REGULAR_EXPRESSION
"unexpected new.*PASS\nTest with golden file failed. We'll try to show the diff:")
endif (APPLE)
endif (WITH_CUSTOM_PREFIX)
add_executable (stl_logging_unittest add_executable (stl_logging_unittest
src/stl_logging_unittest.cc src/stl_logging_unittest.cc
) )

View File

@ -534,8 +534,7 @@ Custom Log Prefix Format
~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
glog supports changing the format of the prefix attached to log messages by glog supports changing the format of the prefix attached to log messages by
receiving a user-provided callback to be used to generate such strings. That receiving a user-provided callback to be used to generate such strings.
feature must be enabled at compile time by the ``WITH_CUSTOM_PREFIX`` flag.
For each log entry, the callback will be invoked with a ``LogMessageInfo`` For each log entry, the callback will be invoked with a ``LogMessageInfo``
struct containing the severity, filename, line number, thread ID, and time of struct containing the severity, filename, line number, thread ID, and time of

View File

@ -59,7 +59,6 @@ def glog_library(namespace = "google", with_gflags = 1, **kwargs):
"-DHAVE_CXX11_NULLPTR_T", "-DHAVE_CXX11_NULLPTR_T",
"-DHAVE_STDINT_H", "-DHAVE_STDINT_H",
"-DHAVE_STRING_H", "-DHAVE_STRING_H",
"-DGLOG_CUSTOM_PREFIX_SUPPORT",
"-I%s/glog_internal" % gendir, "-I%s/glog_internal" % gendir,
] + (["-DHAVE_LIB_GFLAGS"] if with_gflags else []) ] + (["-DHAVE_LIB_GFLAGS"] if with_gflags else [])
@ -205,7 +204,6 @@ def glog_library(namespace = "google", with_gflags = 1, **kwargs):
"cleanup_with_absolute_prefix", "cleanup_with_absolute_prefix",
"cleanup_with_relative_prefix", "cleanup_with_relative_prefix",
# "demangle", # Broken # "demangle", # Broken
# "logging_custom_prefix", # Broken
# "logging", # Broken # "logging", # Broken
# "mock-log", # Broken # "mock-log", # Broken
# "signalhandler", # Pointless # "signalhandler", # Pointless

View File

@ -155,7 +155,6 @@ struct GLOG_EXPORT LogMessageTime {
void CalcGmtOffset(); void CalcGmtOffset();
}; };
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
struct LogMessageInfo { struct LogMessageInfo {
explicit LogMessageInfo(const char* const severity_, explicit LogMessageInfo(const char* const severity_,
const char* const filename_, const char* const filename_,
@ -175,8 +174,6 @@ struct LogMessageInfo {
typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, void* data); typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, void* data);
#endif
@ac_google_end_namespace@ @ac_google_end_namespace@
@ -632,11 +629,9 @@ DECLARE_bool(log_utc_time);
// specified by argv0 in log outputs. // specified by argv0 in log outputs.
GLOG_EXPORT void InitGoogleLogging(const char* argv0); GLOG_EXPORT void InitGoogleLogging(const char* argv0);
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
GLOG_EXPORT void InitGoogleLogging(const char* argv0, GLOG_EXPORT void InitGoogleLogging(const char* argv0,
CustomPrefixCallback prefix_callback, CustomPrefixCallback prefix_callback,
void* prefix_callback_data = NULL); void* prefix_callback_data = NULL);
#endif
// Check if google's logging library has been initialized. // Check if google's logging library has been initialized.
GLOG_EXPORT bool IsGoogleLoggingInitialized(); GLOG_EXPORT bool IsGoogleLoggingInitialized();

View File

@ -420,14 +420,12 @@ static bool SendEmailInternal(const char*dest, const char *subject,
base::Logger::~Logger() { base::Logger::~Logger() {
} }
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
namespace { namespace {
// Optional user-configured callback to print custom prefixes. // Optional user-configured callback to print custom prefixes.
CustomPrefixCallback custom_prefix_callback = NULL; CustomPrefixCallback custom_prefix_callback = NULL;
// User-provided data to pass to the callback: // User-provided data to pass to the callback:
void* custom_prefix_callback_data = NULL; void* custom_prefix_callback_data = NULL;
} }
#endif
namespace { namespace {
@ -1687,9 +1685,7 @@ void LogMessage::Init(const char* file,
std::ios saved_fmt(NULL); std::ios saved_fmt(NULL);
saved_fmt.copyfmt(stream()); saved_fmt.copyfmt(stream());
stream().fill('0'); stream().fill('0');
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
if (custom_prefix_callback == NULL) { if (custom_prefix_callback == NULL) {
#endif
stream() << LogSeverityNames[severity][0]; stream() << LogSeverityNames[severity][0];
if (FLAGS_log_year_in_prefix) { if (FLAGS_log_year_in_prefix) {
stream() << setw(4) << 1900 + logmsgtime_.year(); stream() << setw(4) << 1900 + logmsgtime_.year();
@ -1706,7 +1702,6 @@ void LogMessage::Init(const char* file,
<< static_cast<unsigned int>(GetTID()) << setfill('0') << static_cast<unsigned int>(GetTID()) << setfill('0')
<< ' ' << ' '
<< data_->basename_ << ':' << data_->line_ << "] "; << data_->basename_ << ':' << data_->line_ << "] ";
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
} else { } else {
custom_prefix_callback( custom_prefix_callback(
stream(), stream(),
@ -1717,7 +1712,6 @@ void LogMessage::Init(const char* file,
); );
stream() << " "; stream() << " ";
} }
#endif
stream().copyfmt(saved_fmt); stream().copyfmt(saved_fmt);
} }
data_->num_prefix_chars_ = data_->stream_.pcount(); data_->num_prefix_chars_ = data_->stream_.pcount();
@ -2649,7 +2643,6 @@ void InitGoogleLogging(const char* argv0) {
glog_internal_namespace_::InitGoogleLoggingUtilities(argv0); glog_internal_namespace_::InitGoogleLoggingUtilities(argv0);
} }
#ifdef GLOG_CUSTOM_PREFIX_SUPPORT
void InitGoogleLogging(const char* argv0, void InitGoogleLogging(const char* argv0,
CustomPrefixCallback prefix_callback, CustomPrefixCallback prefix_callback,
void* prefix_callback_data) { void* prefix_callback_data) {
@ -2657,7 +2650,6 @@ void InitGoogleLogging(const char* argv0,
custom_prefix_callback_data = prefix_callback_data; custom_prefix_callback_data = prefix_callback_data;
InitGoogleLogging(argv0); InitGoogleLogging(argv0);
} }
#endif
void ShutdownGoogleLogging() { void ShutdownGoogleLogging() {
glog_internal_namespace_::ShutdownGoogleLoggingUtilities(); glog_internal_namespace_::ShutdownGoogleLoggingUtilities();

File diff suppressed because it is too large Load Diff

View File

@ -1,308 +0,0 @@
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=2 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
WARNING: Logging before InitGoogleLogging() is written to STDERR
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=0 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] foo bar 10 3.4
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Plog every 2, iteration 1: __SUCCESS__ [0]
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 3, iteration 1
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 4, iteration 1
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 5, iteration 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 1
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if less than 3 every 2, iteration 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 2
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [2]
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 3
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if less than 3 every 2, iteration 3
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 3, iteration 4
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 4
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [4]
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 4, iteration 5
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 5
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 5, iteration 6
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 6
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [6]
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 3, iteration 7
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 7
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 8
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [8]
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 4, iteration 9
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 9
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log every 3, iteration 10
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Log if every 1, iteration 10
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if this
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] array
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] const array
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] foo 1000 1000 3e8
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] foo 1
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] inner
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] outer
no prefix
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: foo bar 10 3.400000
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: array
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: const array
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: ptr __PTRTEST__
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: ptr __NULLP__
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: foo 1000 0000001000 3e8
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: foo 1000
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: foo 1000
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: RAW_LOG ERROR: The Message was too long!
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: RAW_LOG ERROR: The Message was too long!
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0 on
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 1 on
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 2 on
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=0 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=1 stderrthreshold=0 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=-1 stderrthreshold=0 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=1 logtostderr=0 alsologtostderr=0
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=2 logtostderr=0 alsologtostderr=0
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=3 logtostderr=0 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=3 logtostderr=1 alsologtostderr=0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=0 stderrthreshold=3 logtostderr=0 alsologtostderr=1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=1 stderrthreshold=1 logtostderr=0 alsologtostderr=0
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Test: v=1 stderrthreshold=3 logtostderr=0 alsologtostderr=1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: vlog 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if -1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if info every 1 expr
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] log_if error every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] vlog_if 0 every 1 expr
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_STRING: reported info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_STRING: reported warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_STRING: reported error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_STRING: LOG_STRING: collected info
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_STRING: LOG_STRING: collected warning
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_STRING: LOG_STRING: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: reported info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: reported warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: reported error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_TO_SINK:
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK_BUT_NOT_TO_LOGFILE: collected info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK_BUT_NOT_TO_LOGFILE: collected warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_SINK_BUT_NOT_TO_LOGFILE: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: collected info
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_TO_STRING: LOG_TO_STRING: collected info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: collected warning
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_TO_STRING: LOG_TO_STRING: collected warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Captured by LOG_TO_STRING: LOG_TO_STRING: collected error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: reported info
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: reported warning
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] LOG_TO_STRING: reported error
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffering
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffered
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waiting
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Sink got a messages
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waited
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink is sending out a message: IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Have 0 left
EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 2
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffering
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffered
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waiting
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Sink got a messages
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waited
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink is sending out a message: EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 2
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Have 0 left
WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 3
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffering
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Buffered
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waiting
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Sink got a messages
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] RAW: Waited
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink is sending out a message: WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 3
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Have 0 left
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink capture: IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 1
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink capture: EYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 2
IYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Sink capture: WYEARDATE TIME__ THREADID logging_custom_prefix_unittest.cc:LINE] Message 3

View File

@ -1,4 +1,4 @@
// Copyright (c) 2002, Google Inc. // Copyright (c) 2023, Google Inc.
// All rights reserved. // All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without
@ -49,6 +49,7 @@
#include <fstream> #include <fstream>
#include <iomanip> #include <iomanip>
#include <iostream> #include <iostream>
#include <fstream>
#include <memory> #include <memory>
#include <queue> #include <queue>
#include <sstream> #include <sstream>
@ -182,6 +183,30 @@ static void BM_vlog(int n) {
} }
BENCHMARK(BM_vlog) BENCHMARK(BM_vlog)
// Dynamically generate a prefix using the default format and write it to the stream.
void PrefixAttacher(std::ostream &s, const LogMessageInfo &l, void* data) {
// Assert that `data` contains the expected contents before producing the
// prefix (otherwise causing the tests to fail):
if (data == NULL || *static_cast<string*>(data) != "good data") {
return;
}
s << l.severity[0]
<< setw(4) << 1900 + l.time.year()
<< setw(2) << 1 + l.time.month()
<< setw(2) << l.time.day()
<< ' '
<< setw(2) << l.time.hour() << ':'
<< setw(2) << l.time.min() << ':'
<< setw(2) << l.time.sec() << "."
<< setw(6) << l.time.usec()
<< ' '
<< setfill(' ') << setw(5)
<< l.thread_id << setfill('0')
<< ' '
<< l.filename << ':' << l.line_number << "]";
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
FLAGS_colorlogtostderr = false; FLAGS_colorlogtostderr = false;
FLAGS_timestamp_in_logfile_name = true; FLAGS_timestamp_in_logfile_name = true;
@ -199,7 +224,10 @@ int main(int argc, char **argv) {
EXPECT_FALSE(IsGoogleLoggingInitialized()); EXPECT_FALSE(IsGoogleLoggingInitialized());
InitGoogleLogging(argv[0]); // Setting a custom prefix generator (it will use the default format so that
// the golden outputs can be reused):
string prefix_attacher_data = "good data";
InitGoogleLogging(argv[0], &PrefixAttacher, static_cast<void*>(&prefix_attacher_data));
EXPECT_TRUE(IsGoogleLoggingInitialized()); EXPECT_TRUE(IsGoogleLoggingInitialized());
@ -1486,3 +1514,17 @@ TEST(UserDefinedClass, logging) {
// We must be able to compile this. // We must be able to compile this.
CHECK_EQ(u, u); CHECK_EQ(u, u);
} }
TEST(LogMsgTime, gmtoff) {
/*
* Unit test for GMT offset API
* TODO: To properly test this API, we need a platform independent way to set time-zone.
* */
google::LogMessage log_obj(__FILE__, __LINE__);
long int nGmtOff = log_obj.getLogMessageTime().gmtoff();
// GMT offset ranges from UTC-12:00 to UTC+14:00
const long utc_min_offset = -43200;
const long utc_max_offset = 50400;
EXPECT_TRUE( (nGmtOff >= utc_min_offset) && (nGmtOff <= utc_max_offset) );
}