| 64 | |
| 65 | template <typename T> |
| 66 | void plain_text_message(T& out, const IfcUtil::IfcBaseClass* current_product, Logger::Severity type, const std::string& message, const IfcUtil::IfcBaseInterface* instance) { |
| 67 | out << "[" << severity_strings<typename T::char_type>::value[type] << "] "; |
| 68 | out << "[" << get_time(type <= Logger::LOG_PERF).c_str() << "] "; |
| 69 | if (current_product) { |
| 70 | std::string global_id = current_product->as<IfcUtil::IfcBaseEntity>()->get("GlobalId"); |
| 71 | out << "{" << global_id.c_str() << "} "; |
| 72 | } |
| 73 | out << message.c_str() << std::endl; |
| 74 | if (instance) { |
| 75 | std::ostringstream oss; |
| 76 | instance->as<IfcUtil::IfcBaseClass>()->toString(oss); |
| 77 | auto instance_string = oss.str(); |
| 78 | if (instance_string.size() > 259) { |
| 79 | instance_string = instance_string.substr(0, 256) + "..."; |
| 80 | } |
| 81 | out << instance_string.c_str() << std::endl; |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | template <typename T> |
| 86 | std::basic_string<T> string_as(const std::string& string) { |