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

Side by Side Diff: services/log/log_impl.cc

Issue 1447273002: Mojo Log service and a thread-safe client library. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: removed environment & bindings changes from previous patchset. remove unused mojo::log::EntryMetad… Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/log/log_impl.h"
6
7 #include <stdio.h>
8
9 #include "mojo/public/cpp/application/application_connection.h"
10 #include "mojo/public/cpp/bindings/interface_request.h"
viettrungluu 2015/11/20 23:21:51 Probably don't need this include (already included
vardhan 2015/12/02 00:06:14 Done.
11 #include "mojo/public/cpp/system/functions.h"
12 #include "mojo/services/log/interfaces/entry.mojom.h"
13
14 namespace mojo {
15 namespace log {
16
17 namespace {
viettrungluu 2015/11/20 23:21:51 blank line after
vardhan 2015/12/02 00:06:14 Done.
18 std::string LogLevelToString(int32_t log_level) {
19 if (log_level <= kLogLevelVerbose - 3)
20 return "VERBOSE4+";
21 switch (log_level) {
22 case kLogLevelVerbose - 2:
23 return "VERBOSE3";
24 case kLogLevelVerbose - 1:
25 return "VERBOSE2";
26 case kLogLevelVerbose:
27 return "VERBOSE1";
28 case kLogLevelInfo:
29 return "INFO";
30 case kLogLevelWarning:
31 return "WARNING";
32 case kLogLevelError:
33 return "ERROR";
34 }
35 return "FATAL";
36 }
37 } // namespace
viettrungluu 2015/11/20 23:21:51 blank line before
vardhan 2015/12/02 00:06:14 Done.
38
39 LogImpl::LogImpl(const std::string& remote_url, InterfaceRequest<Log> request)
40 : remote_url_(remote_url), binding_(this, request.Pass()) {}
viettrungluu 2015/11/20 23:21:51 nit: should probably use std::move instead of .Pas
vardhan 2015/12/02 00:06:14 Done.
41
42 LogImpl::~LogImpl() {}
43
44 // static
45 void LogImpl::Create(ApplicationConnection* connection,
46 InterfaceRequest<Log> request) {
47 MOJO_DCHECK(connection);
viettrungluu 2015/11/20 23:21:51 Probably need to include some header for MOJO_DCHE
vardhan 2015/12/02 00:06:14 Done. do you recommend using DCHECK or MOJO_DCHEC
viettrungluu 2015/12/02 00:08:01 Probably, if you're using //base anyway, you shoul
48 const std::string& remote_url = connection->GetRemoteApplicationURL();
49 if (remote_url.empty()) {
50 MOJO_LOG(ERROR) << "No remote URL";
51 return;
52 }
53
54 new LogImpl(remote_url, request.Pass());
55 }
56
57 void LogImpl::AddEntry(EntryPtr entry) {
58 MOJO_DCHECK(entry);
59
60 // In order to keep LogImpl thread-safe (for the future), we should only print
61 // one thing here (otherwise, it could interleave with other prints).
62 fprintf(stderr, "%s\n", FormatEntry(entry).c_str());
63 }
64
65 std::string LogImpl::FormatEntry(const EntryPtr& entry) {
66 std::string rv = "<";
viettrungluu 2015/11/20 23:21:51 This would all be more readable if you just used S
vardhan 2015/12/02 00:06:14 Done.
67 rv += remote_url_;
68 rv += "> [";
69 rv += LogLevelToString(entry->log_level);
70 rv += "] ";
71 if (entry->source_file) {
72 rv += entry->source_file.To<std::string>();
73 if (entry->source_line) {
74 char line_str[20];
75 int chars_written = snprintf(line_str, sizeof(line_str), ":%u",
76 static_cast<uint32_t>(entry->source_line));
77 MOJO_DCHECK(chars_written > 0);
78 MOJO_DCHECK(chars_written <= static_cast<int>(sizeof(line_str) - 1));
79
80 rv += line_str;
81 }
82 rv += ": ";
83 }
84 rv += entry->message ? entry->message.To<std::string>() : "<no message>";
85 return rv;
86 }
87
88 } // namespace log
89 } // namespace mojo
OLDNEW
« services/log/BUILD.gn ('K') | « services/log/log_impl.h ('k') | services/log/main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698