| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "mojo/public/cpp/environment/default_logger.h" | 5 #include "mojo/public/cpp/environment/default_logger.h" |
| 6 | 6 |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 #include <stdlib.h> // For |abort()|. | 8 #include <stdlib.h> // For |abort()|. |
| 9 | 9 |
| 10 #include <algorithm> |
| 11 |
| 10 namespace mojo { | 12 namespace mojo { |
| 11 namespace { | 13 namespace { |
| 12 | 14 |
| 15 MojoLogLevel g_minimum_log_level = MOJO_LOG_LEVEL_INFO; |
| 16 |
| 13 const char* GetLogLevelString(MojoLogLevel log_level) { | 17 const char* GetLogLevelString(MojoLogLevel log_level) { |
| 14 if (log_level < MOJO_LOG_LEVEL_VERBOSE) | 18 if (log_level < MOJO_LOG_LEVEL_VERBOSE) |
| 15 return "VERBOSE"; | 19 return "VERBOSE"; |
| 16 switch (log_level) { | 20 switch (log_level) { |
| 17 case MOJO_LOG_LEVEL_VERBOSE: | 21 case MOJO_LOG_LEVEL_VERBOSE: |
| 18 return "VERBOSE"; | 22 return "VERBOSE"; |
| 19 case MOJO_LOG_LEVEL_INFO: | 23 case MOJO_LOG_LEVEL_INFO: |
| 20 return "INFO"; | 24 return "INFO"; |
| 21 case MOJO_LOG_LEVEL_WARNING: | 25 case MOJO_LOG_LEVEL_WARNING: |
| 22 return "WARNING"; | 26 return "WARNING"; |
| 23 case MOJO_LOG_LEVEL_ERROR: | 27 case MOJO_LOG_LEVEL_ERROR: |
| 24 return "ERROR"; | 28 return "ERROR"; |
| 25 } | 29 } |
| 26 // Consider everything higher to be fatal. | 30 // Consider everything higher to be fatal. |
| 27 return "FATAL"; | 31 return "FATAL"; |
| 28 } | 32 } |
| 29 | 33 |
| 30 void LogMessage(MojoLogLevel log_level, const char* message) { | 34 void LogMessage(MojoLogLevel log_level, const char* message) { |
| 35 if (log_level < g_minimum_log_level) |
| 36 return; |
| 37 |
| 31 // TODO(vtl): Add timestamp also? | 38 // TODO(vtl): Add timestamp also? |
| 32 fprintf(stderr, "%s:%s\n", GetLogLevelString(log_level), message); | 39 fprintf(stderr, "%s:%s\n", GetLogLevelString(log_level), message); |
| 33 if (log_level >= MOJO_LOG_LEVEL_FATAL) | 40 if (log_level >= MOJO_LOG_LEVEL_FATAL) |
| 34 abort(); | 41 abort(); |
| 35 } | 42 } |
| 36 | 43 |
| 44 MojoLogLevel GetMinimumLogLevel() { |
| 45 return g_minimum_log_level; |
| 46 } |
| 47 |
| 37 const MojoLogger kDefaultLogger = { | 48 const MojoLogger kDefaultLogger = { |
| 38 LogMessage | 49 LogMessage, |
| 50 GetMinimumLogLevel |
| 39 }; | 51 }; |
| 40 | 52 |
| 41 } // namespace | 53 } // namespace |
| 42 | 54 |
| 55 namespace internal { |
| 56 |
| 57 // Declared in mojo/public/cpp/environment/lib/default_logger_internal.h: |
| 58 void SetMinimumLogLevel(MojoLogLevel minimum_log_level) { |
| 59 g_minimum_log_level = std::min(minimum_log_level, MOJO_LOG_LEVEL_FATAL); |
| 60 } |
| 61 |
| 62 } // namespace internal |
| 63 |
| 64 // Declared in mojo/public/cpp/environment/default_logger.h: |
| 43 const MojoLogger* GetDefaultLogger() { | 65 const MojoLogger* GetDefaultLogger() { |
| 44 return &kDefaultLogger; | 66 return &kDefaultLogger; |
| 45 } | 67 } |
| 46 | 68 |
| 47 } // namespace mojo | 69 } // namespace mojo |
| OLD | NEW |