Skip to content

Re-add Semantic Logger + fix for Puma in Cluster mode#884

Open
mwtrew wants to merge 4 commits into
mainfrom
1455_fix-logger-config-for-puma
Open

Re-add Semantic Logger + fix for Puma in Cluster mode#884
mwtrew wants to merge 4 commits into
mainfrom
1455_fix-logger-config-for-puma

Conversation

@mwtrew

@mwtrew mwtrew commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

This missing config meant Semantic Logger was not working in prod, where we use Puma in Cluster mode.

See https://logger.rocketjob.io/forking.html#puma

Status

What's changed?

  • Adds config so that Semantic Logger works when we're using Puma with multiple threads, like we do in production. See the docs for more info.

Steps to perform after deploying to production

None

This missing config meant Semantic Logger was not working in prod, where
we use Puma in Cluster mode.

See https://logger.rocketjob.io/forking.html#puma
Copilot AI review requested due to automatic review settings June 18, 2026 12:49
@cla-bot cla-bot Bot added the cla-signed label Jun 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Ensures Semantic Logger appenders are correctly re-opened after Puma forks worker processes in clustered mode so logging works in production.

Changes:

  • Adds a Puma worker lifecycle hook intended to call SemanticLogger.reopen after forking.
  • Minor whitespace changes at the end of config/puma.rb.
Comments suppressed due to low confidence (1)

config/puma.rb:58

  • There are extra blank lines (and trailing whitespace) at the end of the file; this will typically trip whitespace/style checks and adds noise to diffs.
# Allow puma to be restarted by `bin/rails restart` command.
plugin :tmp_restart




💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread config/puma.rb
@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown

Test coverage

91.97% line coverage reported by SimpleCov.
Run: https://github.com/RaspberryPiFoundation/editor-api/actions/runs/28247027621

@mwtrew mwtrew marked this pull request as draft June 18, 2026 13:24
@mwtrew mwtrew temporarily deployed to editor-api-staging June 18, 2026 14:08 Inactive
mwtrew and others added 3 commits June 26, 2026 16:10
## Status

- Related to
RaspberryPiFoundation/digital-editor-issues#1455

## What's changed?

- Adds the Semantic Logging gem and uses it to make log messages more
useful. See a comparison
[here](https://logger.rocketjob.io/rails.html#configuration).
    - This includes controller and action names by default.
- In the production environment only, logs are structured in JSON-format
to make filtering easier in BetterStack.
- Example: [filtering down to GET requests on the
FeaturesController](https://telemetry.betterstack.com/team/t62404/tail?s=l314881&q=message.payload.controller%3D%22Api%3A%3AFeaturesController%22%20message.payload.method%3D%22GET%22&a=1781695637116522.107740926).
- _The change in `application.rb` looks like it also enables JSON
logging in non-prod environments, however this only applies to the log
files written to disk, not the logging output in standard out._
- Disables Flipper logging, which was at DEBUG level with no clear way
of changing the level.
 
## Steps to perform after deploying to production

None.
@mwtrew mwtrew changed the title Re-open Semantic Logger appenders in Cluster mode Re-add Semantic Logger + fix for Puma in Cluster mode Jun 26, 2026
@mwtrew mwtrew marked this pull request as ready for review June 26, 2026 15:14
@mwtrew mwtrew temporarily deployed to editor-api-staging June 26, 2026 15:22 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants