1// Copyright (C) 2011 The Libphonenumber Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Author: Philippe Liard
16
17#include <iostream>
18
19#include "phonenumbers/default_logger.h"
20
21namespace i18n {
22namespace phonenumbers {
23
24using std::cout;
25using std::string;
26
27void StdoutLogger::WriteMessage(const string& msg) {
28  cout << " " << msg;
29}
30
31void StdoutLogger::WriteLevel() {
32  int verbosity_level = level();
33  if (verbosity_level <= 0) {
34    verbosity_level = LOG_FATAL;
35  }
36
37  cout << "[";
38
39  // Handle verbose logs first.
40  if (verbosity_level > LOG_DEBUG) {
41    cout << "VLOG" << (verbosity_level - LOG_DEBUG);
42  } else {
43    switch (verbosity_level) {
44      case LOG_FATAL:   cout << "FATAL"; break;
45#ifdef ERROR  // In case ERROR is defined by MSVC (i.e not set to LOG_ERROR).
46      case ERROR:
47#endif
48      case LOG_ERROR:   cout << "ERROR"; break;
49      case LOG_WARNING: cout << "WARNING"; break;
50      case LOG_INFO:    cout << "INFO"; break;
51      case LOG_DEBUG:   cout << "DEBUG"; break;
52    }
53  }
54  cout << "]";
55}
56
57}  // namespace phonenumbers
58}  // namespace i18n
59