11767c5feSopenharmony_ci// Copyright (C) 2011 The Libphonenumber Authors
21767c5feSopenharmony_ci//
31767c5feSopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
41767c5feSopenharmony_ci// you may not use this file except in compliance with the License.
51767c5feSopenharmony_ci// You may obtain a copy of the License at
61767c5feSopenharmony_ci//
71767c5feSopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0
81767c5feSopenharmony_ci//
91767c5feSopenharmony_ci// Unless required by applicable law or agreed to in writing, software
101767c5feSopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS,
111767c5feSopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121767c5feSopenharmony_ci// See the License for the specific language governing permissions and
131767c5feSopenharmony_ci// limitations under the License.
141767c5feSopenharmony_ci
151767c5feSopenharmony_ci// Author: Philippe Liard
161767c5feSopenharmony_ci
171767c5feSopenharmony_ci#include <iostream>
181767c5feSopenharmony_ci
191767c5feSopenharmony_ci#include "phonenumbers/default_logger.h"
201767c5feSopenharmony_ci
211767c5feSopenharmony_cinamespace i18n {
221767c5feSopenharmony_cinamespace phonenumbers {
231767c5feSopenharmony_ci
241767c5feSopenharmony_civoid StdoutLogger::WriteMessage(const string& msg) {
251767c5feSopenharmony_ci  std::cout << " " << msg;
261767c5feSopenharmony_ci}
271767c5feSopenharmony_ci
281767c5feSopenharmony_civoid StdoutLogger::WriteLevel() {
291767c5feSopenharmony_ci  int verbosity_level = level();
301767c5feSopenharmony_ci  if (verbosity_level <= 0) {
311767c5feSopenharmony_ci    verbosity_level = LOG_FATAL;
321767c5feSopenharmony_ci  }
331767c5feSopenharmony_ci
341767c5feSopenharmony_ci  std::cout << "[";
351767c5feSopenharmony_ci
361767c5feSopenharmony_ci  // Handle verbose logs first.
371767c5feSopenharmony_ci  if (verbosity_level > LOG_DEBUG) {
381767c5feSopenharmony_ci    std::cout << "VLOG" << (verbosity_level - LOG_DEBUG);
391767c5feSopenharmony_ci  } else {
401767c5feSopenharmony_ci    switch (verbosity_level) {
411767c5feSopenharmony_ci      case LOG_FATAL:   std::cout << "FATAL"; break;
421767c5feSopenharmony_ci#ifdef ERROR  // In case ERROR is defined by MSVC (i.e not set to LOG_ERROR).
431767c5feSopenharmony_ci      case ERROR:
441767c5feSopenharmony_ci#endif
451767c5feSopenharmony_ci      case LOG_ERROR:   std::cout << "ERROR"; break;
461767c5feSopenharmony_ci      case LOG_WARNING: std::cout << "WARNING"; break;
471767c5feSopenharmony_ci      case LOG_INFO:    std::cout << "INFO"; break;
481767c5feSopenharmony_ci      case LOG_DEBUG:   std::cout << "DEBUG"; break;
491767c5feSopenharmony_ci    }
501767c5feSopenharmony_ci  }
511767c5feSopenharmony_ci  std::cout << "]";
521767c5feSopenharmony_ci}
531767c5feSopenharmony_ci
541767c5feSopenharmony_ci}  // namespace phonenumbers
551767c5feSopenharmony_ci}  // namespace i18n
56