* Added the possibility to provide ImageIO's output format in the TYPE string.
For instance:
TYPE=png image/png
TYPE=png image/png png256
TYPE=png image/png png24
TYPE=png image/png png
* Removed useless comments.
Added documentation for output format.
* Added tests for 'webp' output format
* Also added tests for 'png32' output format
* Fix 'webp' sums vary based on version
* Add JPG & use multiple layers on example-map
---------
Co-authored-by: Tim <autintim@gmail.com>
* Using [`GLib Logging Framework`](https://developer.gnome.org/programming-guidelines/stable/logging.html.en) for logging
* Created new `g_logger` function for logging
* Outputs to `stdout`/`stderr` only when running in `foreground`
* `stderr` for `message`, `warning`, `critical` & `error` levels
* `stdout` for `debug` & `info` levels
* Use `G_MESSAGES_DEBUG=all` environment to enable `debug` to print
* Otherwise, output will be to `syslog` or `systemd journal` (when appropriate)
* Standardized usage of `{LOG_PRIORITY}: ` prefix in log messages
* Only when using `syslog`, otherwise `GLib Logging` will take care of it
* Changed `fprintf(stderr`, `printf` & `perror` calls to `g_logger` calls
* You might want to check them out closely to make sure I chose the right levels
* No changes to `logging/output` were made to "`foreground`" programs (I.E. `render_*`)
* Changed `0`,`1` to `no_argument`,`required_argument` in `getopt_long`'s `long_options`
* Fixed `renderd`'s `foreground` opt (should be `no_argument` [0] rather than `reguired_argument` [1])
* Basic test for `mod_tile` module
* ~~Extended `renderd` log priority onto Mapnik's logger~~
sets the new MaxLoadMissing to 50 and MaxLoadOld to 16.
With the prevalence of multi core servers today, the previous
default thresholds of 10 and 5 were becoming to lower than the average
CPU count. Furthermore, load is not an ideal measure, as it includes I/O
load and much of the I/O load might well come from serving rather than
rendering. Especially if the database is on a separate SSD. Lastly, using
the thresholds in mod_tile isn't super helpful, as due to hysteresis of
rendering queues stop submitting tiles at a time of high load is not
particularly helpful without stopping rendering from the queue.
In addition to Render and RenderPrio, add another priority level of RenderLow.
The idea is that if you rerender all tiles by touching planet-import-complete and
thereby likely overloading the server's rendering capacity you want to prioritize rerendering
of tiles that were explicitly marked dirty due to data changes over rerendering
due to planet-import-complete updates.
This is achieved by splitting rendering requests by if they are "old", or "very old".
As the tile expiry sets back the modification date many years, mod_tile splits
rendering requests based on how old the tiles are. If they are no more than a
certain threshold (currently set to one year) old, they are rendered with lower priority.