MCPcopy Create free account
hub / github.com/duckdb/duckdb / WriteLogEntry

Method WriteLogEntry

tools/shell/shell_renderer.cpp:1855–1891  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1853//===--------------------------------------------------------------------===//
1854
1855void ShellLogStorage::WriteLogEntry(duckdb::timestamp_t timestamp, duckdb::LogLevel level, const string &log_type,
1856 const string &log_message, const duckdb::RegisteredLoggingContext &context) {
1857 duckdb::lock_guard<duckdb::mutex> l(lock);
1858
1859 HighlightElementType element_type;
1860 switch (level) {
1861 case duckdb::LogLevel::LOG_TRACE:
1862 element_type = HighlightElementType::LOG_TRACE;
1863 break;
1864 case duckdb::LogLevel::LOG_DEBUG:
1865 element_type = HighlightElementType::LOG_DEBUG;
1866 break;
1867 case duckdb::LogLevel::LOG_INFO:
1868 element_type = HighlightElementType::LOG_INFO;
1869 break;
1870 case duckdb::LogLevel::LOG_WARNING:
1871 element_type = HighlightElementType::LOG_WARNING;
1872 break;
1873 case duckdb::LogLevel::LOG_ERROR:
1874 case duckdb::LogLevel::LOG_FATAL:
1875 element_type = HighlightElementType::ERROR_TOKEN;
1876 break;
1877 default:
1878 throw std::runtime_error("Unsupported log level for WriteLogEntry");
1879 }
1880
1881 // check if the log has already been printed
1882 auto log_id = duckdb::StringUtil::CIHash(log_message);
1883 if (printed_logs.find(log_id) != printed_logs.end()) {
1884 return;
1885 }
1886 printed_logs.emplace(log_id);
1887
1888 const auto log_level = duckdb::EnumUtil::ToString(level);
1889 shell_highlight.PrintText(log_level + ":\n", PrintOutput::STDOUT, element_type);
1890 shell_highlight.PrintText(log_message + "\n\n", PrintOutput::STDOUT, element_type);
1891}
1892
1893} // namespace duckdb_shell

Callers

nothing calls this directly

Calls 4

findMethod · 0.45
endMethod · 0.45
emplaceMethod · 0.45
PrintTextMethod · 0.45

Tested by

no test coverage detected