Chromium Code Reviews| Index: base/syslog_logging.cc |
| diff --git a/base/syslog_logging.cc b/base/syslog_logging.cc |
| index 1cd545910a967a6f52f5a138136bceb8be6782fd..815d5dbf4665964d8f0ae16c0ba7f7e54f2b1b1f 100644 |
| --- a/base/syslog_logging.cc |
| +++ b/base/syslog_logging.cc |
| @@ -19,6 +19,17 @@ |
| namespace logging { |
| +#if defined(OS_WIN) |
| + |
| +namespace { |
| +std::string g_event_source_name; |
|
grt (UTC plus 2)
2016/11/25 15:25:34
non-POD globals are banned (https://google.github.
pastarmovj
2016/11/28 12:23:03
Done.
|
| +} |
| + |
| +void SetEventSourceName(const std::string& name) { |
| + g_event_source_name = name; |
| +} |
| +#endif // defined(OS_WIN) |
| + |
| EventLogMessage::EventLogMessage(const char* file, |
| int line, |
| LogSeverity severity) |
| @@ -27,8 +38,12 @@ EventLogMessage::EventLogMessage(const char* file, |
| EventLogMessage::~EventLogMessage() { |
| #if defined(OS_WIN) |
| - const char kEventSource[] = "chrome"; |
| - HANDLE event_log_handle = RegisterEventSourceA(NULL, kEventSource); |
| + // If g_event_source_name is empty (which it is per default) this call will |
| + // fail and SYSLOG will degrade gracefully to regular LOG with an extra error |
| + // suffix. If you see this happening most probably you are using SYSLOG before |
| + // you called SetEventSourceName. |
| + HANDLE event_log_handle = |
| + RegisterEventSourceA(NULL, g_event_source_name.c_str()); |
| if (event_log_handle == NULL) { |
| stream() << " !!NOT ADDED TO EVENTLOG!!"; |
| return; |