Skip to content

Commit cdcaa99

Browse files
authored
Merge pull request #1923 from joto/debug-log-out
Put debug output for expire outputs and tables into their own file
2 parents 7d25cd3 + 8f49e28 commit cdcaa99

File tree

5 files changed

+106
-44
lines changed

5 files changed

+106
-44
lines changed

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ add_library(osm2pgsql_lib STATIC)
33

44
target_sources(osm2pgsql_lib PRIVATE
55
db-copy.cpp
6+
debug-output.cpp
67
dependency-manager.cpp
78
expire-tiles.cpp
89
expire-output.cpp

src/debug-output.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/**
2+
* SPDX-License-Identifier: GPL-2.0-or-later
3+
*
4+
* This file is part of osm2pgsql (https://osm2pgsql.org/).
5+
*
6+
* Copyright (C) 2006-2023 by the osm2pgsql developer community.
7+
* For a full list of authors see the git log.
8+
*/
9+
10+
#include "debug-output.hpp"
11+
12+
#include "logging.hpp"
13+
14+
void write_expire_output_list_to_debug_log(
15+
std::vector<expire_output_t> const &expire_outputs)
16+
{
17+
if (!get_logger().debug_enabled()) {
18+
return;
19+
}
20+
21+
log_debug("ExpireOutputs:");
22+
for (auto const &expire_output : expire_outputs) {
23+
log_debug("- ExpireOutput {}", expire_output.name());
24+
if (expire_output.minzoom() == expire_output.maxzoom()) {
25+
log_debug(" - zoom: {}", expire_output.maxzoom());
26+
} else {
27+
log_debug(" - zoom: {}-{}", expire_output.minzoom(),
28+
expire_output.maxzoom());
29+
}
30+
if (!expire_output.filename().empty()) {
31+
log_debug(" - filename: {}", expire_output.filename());
32+
}
33+
if (!expire_output.table().empty()) {
34+
log_debug(" - table: {}", qualified_name(expire_output.schema(),
35+
expire_output.name()));
36+
}
37+
}
38+
}
39+
40+
void write_table_list_to_debug_log(
41+
std::vector<flex_table_t> const &tables,
42+
std::vector<expire_output_t> const &expire_outputs)
43+
{
44+
if (!get_logger().debug_enabled()) {
45+
return;
46+
}
47+
48+
log_debug("Tables:");
49+
for (auto const &table : tables) {
50+
log_debug("- Table {}", qualified_name(table.schema(), table.name()));
51+
log_debug(" - columns:");
52+
for (auto const &column : table) {
53+
log_debug(R"( - "{}" {} ({}) not_null={} create_only={})",
54+
column.name(), column.type_name(), column.sql_type_name(),
55+
column.not_null(), column.create_only());
56+
for (auto const &ec : column.expire_configs()) {
57+
auto const &config = expire_outputs[ec.expire_output];
58+
log_debug(" - expire: output={}", config.name());
59+
}
60+
}
61+
log_debug(" - data_tablespace={}", table.data_tablespace());
62+
log_debug(" - index_tablespace={}", table.index_tablespace());
63+
log_debug(" - cluster={}", table.cluster_by_geom());
64+
for (auto const &index : table.indexes()) {
65+
log_debug(" - INDEX USING {}", index.method());
66+
log_debug(" - column={}", index.columns());
67+
log_debug(" - expression={}", index.expression());
68+
log_debug(" - include={}", index.include_columns());
69+
log_debug(" - tablespace={}", index.tablespace());
70+
log_debug(" - unique={}", index.is_unique());
71+
log_debug(" - where={}", index.where_condition());
72+
}
73+
}
74+
}

src/debug-output.hpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#ifndef OSM2PGSQL_DEBUG_OUTPUT_HPP
2+
#define OSM2PGSQL_DEBUG_OUTPUT_HPP
3+
4+
/**
5+
* SPDX-License-Identifier: GPL-2.0-or-later
6+
*
7+
* This file is part of osm2pgsql (https://osm2pgsql.org/).
8+
*
9+
* Copyright (C) 2006-2023 by the osm2pgsql developer community.
10+
* For a full list of authors see the git log.
11+
*/
12+
13+
#include "expire-output.hpp"
14+
#include "flex-table.hpp"
15+
16+
void write_expire_output_list_to_debug_log(
17+
std::vector<expire_output_t> const &expire_outputs);
18+
19+
void write_table_list_to_debug_log(
20+
std::vector<flex_table_t> const &tables,
21+
std::vector<expire_output_t> const &expire_outputs);
22+
23+
#endif // OSM2PGSQL_DEBUG_OUTPUT_HPP

src/logging.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ class logger
6666

6767
void set_level(log_level level) noexcept { m_current_level = level; }
6868

69+
bool debug_enabled() const noexcept
70+
{
71+
return m_current_level == log_level::debug;
72+
}
73+
6974
void enable_sql() noexcept { m_log_sql = true; }
7075

7176
void enable_sql_data() noexcept { m_log_sql_data = true; }

src/output-flex.cpp

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99

1010
#include "db-copy.hpp"
11+
#include "debug-output.hpp"
1112
#include "expire-output.hpp"
1213
#include "expire-tiles.hpp"
1314
#include "flex-index.hpp"
@@ -1357,50 +1358,8 @@ output_flex_t::output_flex_t(std::shared_ptr<middle_query_t> const &mid,
13571358
}
13581359
}
13591360

1360-
log_debug("ExpireOutputs:");
1361-
for (auto const &expire_output : *m_expire_outputs) {
1362-
log_debug("- ExpireOutput {}", expire_output.name());
1363-
if (expire_output.minzoom() == expire_output.maxzoom()) {
1364-
log_debug(" - zoom: {}", expire_output.maxzoom());
1365-
} else {
1366-
log_debug(" - zoom: {}-{}", expire_output.minzoom(),
1367-
expire_output.maxzoom());
1368-
}
1369-
if (!expire_output.filename().empty()) {
1370-
log_debug(" - filename: {}", expire_output.filename());
1371-
}
1372-
if (!expire_output.table().empty()) {
1373-
log_debug(" - table: {}", qualified_name(expire_output.schema(),
1374-
expire_output.name()));
1375-
}
1376-
}
1377-
1378-
log_debug("Tables:");
1379-
for (auto const &table : *m_tables) {
1380-
log_debug("- TABLE {}", qualified_name(table.schema(), table.name()));
1381-
log_debug(" - columns:");
1382-
for (auto const &column : table) {
1383-
log_debug(R"( - "{}" {} ({}) not_null={} create_only={})",
1384-
column.name(), column.type_name(), column.sql_type_name(),
1385-
column.not_null(), column.create_only());
1386-
for (auto const &ec : column.expire_configs()) {
1387-
auto const &config = (*m_expire_outputs)[ec.expire_output];
1388-
log_debug(" - expire: output={}", config.name());
1389-
}
1390-
}
1391-
log_debug(" - data_tablespace={}", table.data_tablespace());
1392-
log_debug(" - index_tablespace={}", table.index_tablespace());
1393-
log_debug(" - cluster={}", table.cluster_by_geom());
1394-
for (auto const &index : table.indexes()) {
1395-
log_debug(" - INDEX USING {}", index.method());
1396-
log_debug(" - column={}", index.columns());
1397-
log_debug(" - expression={}", index.expression());
1398-
log_debug(" - include={}", index.include_columns());
1399-
log_debug(" - tablespace={}", index.tablespace());
1400-
log_debug(" - unique={}", index.is_unique());
1401-
log_debug(" - where={}", index.where_condition());
1402-
}
1403-
}
1361+
write_expire_output_list_to_debug_log(*m_expire_outputs);
1362+
write_table_list_to_debug_log(*m_tables, *m_expire_outputs);
14041363

14051364
for (auto &table : *m_tables) {
14061365
m_table_connections.emplace_back(&table, m_copy_thread);

0 commit comments

Comments
 (0)