Skip to content

fix: logs not being integrated with the path-prefix correctly#2549

Merged
CommanderStorm merged 21 commits intomaplibre:mainfrom
CommanderStorm:prefix-aware-logs
Feb 11, 2026
Merged

fix: logs not being integrated with the path-prefix correctly#2549
CommanderStorm merged 21 commits intomaplibre:mainfrom
CommanderStorm:prefix-aware-logs

Conversation

@CommanderStorm
Copy link
Copy Markdown
Member

@CommanderStorm CommanderStorm commented Feb 10, 2026

Resolves #2548

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts Martin’s startup log messages so the URLs it prints (Catalog + Web UI) correctly include the configured server route_prefix (the path prefix Martin is mounted under).

Changes:

  • Incorporate config.srv.route_prefix into the logged “base URL” used for /catalog and Web UI messages.
  • Improve the startup log line to explicitly mention when a route prefix is in effect.
  • Minor import consolidation in tile content code.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
martin/src/srv/tiles/content.rs Consolidates related server imports into a single grouped use.
martin/src/bin/martin.rs Builds a base_url that includes route_prefix (when set) and uses it in startup and Web UI log output.

Copy link
Copy Markdown
Member

@nyurik nyurik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks ok, but do consider my other comments before merging

#[cfg(all(feature = "webui", not(docsrs)))]
if web_ui_mode == martin::config::args::WebUiMode::EnableForAll {
tracing::warn!("Web UI is enabled for all connections at http://{listen_addresses}/");
tracing::warn!("Web UI is enabled for all connections at {base_url}/");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably better not to have a trailing slash?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, that is required. Otherwise our UI does not work

@CommanderStorm CommanderStorm enabled auto-merge (squash) February 11, 2026 00:09
#[cfg(all(feature = "webui", not(docsrs)))]
if web_ui_mode == martin::config::args::WebUiMode::EnableForAll {
tracing::warn!("Web UI is enabled for all connections at http://{listen_addresses}/");
tracing::info!("Martin server is now active at {base_url}");
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we use both info! and tracing::info! in the same file?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this here is guarded by the cfg, the other is imported actually.

Since we have the no-unused imports, it is either this or ugly/hard to maintain cfg imports at the top

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we may want to even add a comment about that - as i think i caught this one before too :)

@CommanderStorm CommanderStorm merged commit d4456e9 into maplibre:main Feb 11, 2026
40 checks passed
@CommanderStorm CommanderStorm mentioned this pull request Feb 11, 2026
@CommanderStorm CommanderStorm deleted the prefix-aware-logs branch February 11, 2026 12:46
CommanderStorm added a commit that referenced this pull request Feb 11, 2026
## 🤖 New release

* `martin-tile-utils`: 0.6.9 -> 0.6.10 (✓ API compatible changes)
* `mbtiles`: 0.15.1 -> 0.15.2 (✓ API compatible changes)
* `martin-core`: 0.2.6 -> 0.3.0 (⚠ API breaking changes)
* `martin`: 1.3.0 -> 2.0.0

### ⚠ `martin-core` breaking changes

```text
--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/enum_missing.ron

Failed in:
  enum martin_core::config::OptOneMany, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/cfg_containers.rs:29
  enum martin_core::config::OptBoolObj, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/cfg_containers.rs:8

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/module_missing.ron

Failed in:
  mod martin_core::config, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/mod.rs:1
  mod martin_core::config::env, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/env.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/struct_missing.ron

Failed in:
  struct martin_core::config::env::OsEnv, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/env.rs:53
  struct martin_core::config::IdResolver, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/id_resolver.rs:10
  struct martin_core::config::env::FauxEnv, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/env.rs:76

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_missing.ron

Failed in:
  trait martin_core::config::env::Env, previously in file /tmp/.tmpiF3o7Z/martin-core/src/config/env.rs:20
```

<details><summary><i><b>Changelog</b></i></summary><p>


## `mbtiles`

<blockquote>

##
[0.15.2](mbtiles-v0.15.1...mbtiles-v0.15.2)
- 2026-02-11

### Other

- restrict `unused_trait_names` for trait imports
([#2542](#2542))
</blockquote>

## `martin-core`

<blockquote>

##
[0.3.0](martin-core-v0.2.6...martin-core-v0.3.0)
- 2026-02-11

### Added

- *(unstable-cog)* Change tile path semantics for COG sources to match
other sources, expose COG bounds, center and tileSize in TileJSON
([#2510](#2510))

### Other

- *(martin-core)* [**breaking**] remove the configration from the
martin-core crate
([#2521](#2521))
- restrict `unused_trait_names` for trait imports
([#2542](#2542))
</blockquote>

## `martin`

<blockquote>

##
[2.0.0](martin-v1.3.0...martin-v2.0.0)
- 2026-02-11

### Added

- *(srv)* Add HTTP 301 redirects for common URL mistakes
([#2528](#2528))
- *(unstable-cog)* Change tile path semantics for COG sources to match
other sources, expose COG bounds, center and tileSize in TileJSON
([#2510](#2510))

### Fixed

- logs not being integrated with the `path-prefix` correctly
([#2549](#2549))
- Make sure that `route-prefix` does not break the UI when using
trailing slash urls
([#2541](#2541))

### Other

- *(deps)* Bump the all-npm-version-updates group across 2 directories
with 7 updates ([#2553](#2553))
- Add test coverage for header handling in tilejson requests
([#2529](#2529))
- *(martin-core)* [**breaking**] remove the configration from the
martin-core crate
([#2521](#2521))
- *(deps)* autoupdate pre-commit
([#2545](#2545))
- restrict `unused_trait_names` for trait imports
([#2542](#2542))
- *(deps)* Bump the all-npm-version-updates group across 2 directories
with 12 updates ([#2533](#2533))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

route_prefix breaks WebUI

3 participants