1 // 2 // Copyright 2022 The Abseil Authors. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // https://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 #include "absl/log/internal/test_actions.h" 17 18 #include <cassert> 19 #include <iostream> 20 #include <string> 21 22 #include "absl/base/config.h" 23 #include "absl/log/internal/config.h" 24 #include "absl/strings/escaping.h" 25 #include "absl/strings/string_view.h" 26 #include "absl/time/time.h" 27 28 namespace absl { 29 ABSL_NAMESPACE_BEGIN 30 namespace log_internal { 31 operator ()(const absl::LogEntry & entry) const32void WriteToStderrWithFilename::operator()(const absl::LogEntry& entry) const { 33 std::cerr << message << " (file: " << entry.source_filename() << ")" 34 << std::endl; 35 } 36 operator ()(const absl::LogEntry & entry) const37void WriteEntryToStderr::operator()(const absl::LogEntry& entry) const { 38 if (!message.empty()) std::cerr << message << std::endl; 39 40 std::cerr << "LogEntry{\n" 41 << " source_filename: \"" 42 << absl::CHexEscape(entry.source_filename()) << "\"\n" 43 << " source_basename: \"" 44 << absl::CHexEscape(entry.source_basename()) << "\"\n" 45 << " source_line: " << entry.source_line() << "\n" 46 << " prefix: " << (entry.prefix() ? "true\n" : "false\n") 47 << " log_severity: " << entry.log_severity() << "\n" 48 << " timestamp: " << entry.timestamp() << "\n" 49 << " text_message: \"" << absl::CHexEscape(entry.text_message()) 50 << "\"\n verbosity: " << entry.verbosity() << "\n" 51 << "}" << std::endl; 52 } 53 operator ()(absl::LogSeverity severity,absl::string_view filename,absl::string_view log_message) const54void WriteEntryToStderr::operator()(absl::LogSeverity severity, 55 absl::string_view filename, 56 absl::string_view log_message) const { 57 if (!message.empty()) std::cerr << message << std::endl; 58 59 std::cerr << "LogEntry{\n" 60 << " source_filename: \"" << absl::CHexEscape(filename) << "\"\n" 61 << " log_severity: " << severity << "\n" 62 << " text_message: \"" << absl::CHexEscape(log_message) << "}" 63 << std::endl; 64 } 65 66 } // namespace log_internal 67 ABSL_NAMESPACE_END 68 } // namespace absl 69