mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
add logging struct with -u json options flag, log tiling progress [#13]
This commit is contained in:
@@ -47,7 +47,7 @@ C = $(wildcard *.c) $(wildcard *.cpp)
|
|||||||
INCLUDES = -I/usr/local/include -I.
|
INCLUDES = -I/usr/local/include -I.
|
||||||
LIBS = -L/usr/local/lib
|
LIBS = -L/usr/local/lib
|
||||||
|
|
||||||
tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o mvt.o serial.o main.o text.o dirtiles.o plugin.o read_json.o write_json.o geobuf.o flatgeobuf.o evaluator.o geocsv.o csv.o geojson-loop.o
|
tippecanoe: geojson.o jsonpull/jsonpull.o tile.o pool.o mbtiles.o geometry.o projection.o memfile.o mvt.o serial.o main.o text.o dirtiles.o plugin.o read_json.o write_json.o geobuf.o flatgeobuf.o evaluator.o geocsv.o csv.o geojson-loop.o json_logger.o
|
||||||
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread
|
$(CXX) $(PG) $(LIBS) $(FINAL_FLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) -lm -lz -lsqlite3 -lpthread
|
||||||
|
|
||||||
tippecanoe-enumerate: enumerate.o
|
tippecanoe-enumerate: enumerate.o
|
||||||
|
|||||||
@@ -529,6 +529,7 @@ the same layer, enclose them in an `all` expression so they will all be evaluate
|
|||||||
* `-q` or `--quiet`: Work quietly instead of reporting progress or warning messages
|
* `-q` or `--quiet`: Work quietly instead of reporting progress or warning messages
|
||||||
* `-Q` or `--no-progress-indicator`: Don't report progress, but still give warnings
|
* `-Q` or `--no-progress-indicator`: Don't report progress, but still give warnings
|
||||||
* `-U` _seconds_ or `--progress-interval=`_seconds_: Don't report progress more often than the specified number of _seconds_.
|
* `-U` _seconds_ or `--progress-interval=`_seconds_: Don't report progress more often than the specified number of _seconds_.
|
||||||
|
* `-u` or `--json-progress`: like `-quiet` but logs progress as a JSON object. Use in combination with `-U`.
|
||||||
* `-v` or `--version`: Report Tippecanoe's version number
|
* `-v` or `--version`: Report Tippecanoe's version number
|
||||||
|
|
||||||
### Filters
|
### Filters
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#include <stdarg.h>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "json_logger.hpp"
|
||||||
|
|
||||||
|
void json_logger::progress_tile(double progress) {
|
||||||
|
fprintf(stderr,"{\"progress\":%3.1f}\n",progress);
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#ifndef LOGGING_HPP
|
||||||
|
#define LOGGING_HPP
|
||||||
|
|
||||||
|
|
||||||
|
struct json_logger {
|
||||||
|
bool json_enabled = false;
|
||||||
|
|
||||||
|
void progress_tile(double progress);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -69,6 +69,7 @@ static int min_detail = 7;
|
|||||||
|
|
||||||
int quiet = 0;
|
int quiet = 0;
|
||||||
int quiet_progress = 0;
|
int quiet_progress = 0;
|
||||||
|
json_logger logger;
|
||||||
double progress_interval = 0;
|
double progress_interval = 0;
|
||||||
std::atomic<double> last_progress(0);
|
std::atomic<double> last_progress(0);
|
||||||
int geometry_scale = 0;
|
int geometry_scale = 0;
|
||||||
@@ -2690,6 +2691,7 @@ int main(int argc, char **argv) {
|
|||||||
{"quiet", no_argument, 0, 'q'},
|
{"quiet", no_argument, 0, 'q'},
|
||||||
{"no-progress-indicator", no_argument, 0, 'Q'},
|
{"no-progress-indicator", no_argument, 0, 'Q'},
|
||||||
{"progress-interval", required_argument, 0, 'U'},
|
{"progress-interval", required_argument, 0, 'U'},
|
||||||
|
{"json-progress", no_argument, 0, 'u'},
|
||||||
{"version", no_argument, 0, 'v'},
|
{"version", no_argument, 0, 'v'},
|
||||||
|
|
||||||
{"", 0, 0, 0},
|
{"", 0, 0, 0},
|
||||||
@@ -3003,6 +3005,11 @@ int main(int argc, char **argv) {
|
|||||||
quiet_progress = 1;
|
quiet_progress = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'u':
|
||||||
|
quiet = 1;
|
||||||
|
logger.json_enabled = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'U':
|
case 'U':
|
||||||
progress_interval = atof_require(optarg, "Progress interval");
|
progress_interval = atof_require(optarg, "Progress interval");
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include "json_logger.hpp"
|
||||||
|
|
||||||
struct index {
|
struct index {
|
||||||
long long start = 0;
|
long long start = 0;
|
||||||
long long end = 0;
|
long long end = 0;
|
||||||
@@ -38,6 +40,7 @@ void checkdisk(std::vector<struct reader> *r);
|
|||||||
extern int geometry_scale;
|
extern int geometry_scale;
|
||||||
extern int quiet;
|
extern int quiet;
|
||||||
extern int quiet_progress;
|
extern int quiet_progress;
|
||||||
|
extern json_logger logger;
|
||||||
extern double progress_interval;
|
extern double progress_interval;
|
||||||
extern std::atomic<double> last_progress;
|
extern std::atomic<double> last_progress;
|
||||||
|
|
||||||
|
|||||||
@@ -687,6 +687,8 @@ If you don't specify, it will use \fB\fC/tmp\fR\&.
|
|||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
\fB\fC\-U\fR \fIseconds\fP or \fB\fC\-\-progress\-interval=\fR\fIseconds\fP: Don't report progress more often than the specified number of \fIseconds\fP\&.
|
\fB\fC\-U\fR \fIseconds\fP or \fB\fC\-\-progress\-interval=\fR\fIseconds\fP: Don't report progress more often than the specified number of \fIseconds\fP\&.
|
||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
|
\fB\fC\-u\fR or \fB\fC\-\-json\-progress\fR: like \fB\fC\-quiet\fR but logs progress as a JSON object. Use in combination with \fB\fC\-U\fR\&.
|
||||||
|
.IP \(bu 2
|
||||||
\fB\fC\-v\fR or \fB\fC\-\-version\fR: Report Tippecanoe's version number
|
\fB\fC\-v\fR or \fB\fC\-\-version\fR: Report Tippecanoe's version number
|
||||||
.RE
|
.RE
|
||||||
.SS Filters
|
.SS Filters
|
||||||
|
|||||||
@@ -1330,6 +1330,9 @@ serial_feature next_feature(FILE *geoms, std::atomic<long long> *geompos_in, cha
|
|||||||
if (!quiet && !quiet_progress && progress_time()) {
|
if (!quiet && !quiet_progress && progress_time()) {
|
||||||
fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty);
|
fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty);
|
||||||
}
|
}
|
||||||
|
if (logger.json_enabled && progress_time()) {
|
||||||
|
logger.progress_tile(progress);
|
||||||
|
}
|
||||||
*oprogress = progress;
|
*oprogress = progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2325,6 +2328,9 @@ long long write_tile(FILE *geoms, std::atomic<long long> *geompos_in, char *meta
|
|||||||
if (!quiet && !quiet_progress && progress_time()) {
|
if (!quiet && !quiet_progress && progress_time()) {
|
||||||
fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty);
|
fprintf(stderr, " %3.1f%% %d/%u/%u \r", progress, z, tx, ty);
|
||||||
}
|
}
|
||||||
|
if (logger.json_enabled && progress_time()) {
|
||||||
|
logger.progress_tile(progress);
|
||||||
|
}
|
||||||
oprogress = progress;
|
oprogress = progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user