I raised a support request for this and received the following response -
As of October 2023, there was a change introduced to Container Apps logging that impacts customers who dynamically log JSON output to Log Analytics.
Container Apps no longer logs separate columns for the custom properties defined in the customer's JSON output.In the meantime, there is a work around of the issue by using the parse_json function when you query logs.
Here's a basic example of how you might write a Kusto Query Language (KQL) query to parse the JSON data from that column:
> ContainerAppsConsoleLogs_CL
> | extend ParsedJSON = parse_json(Log_s)
> | project
> LogMessage = ParsedJSON.Log_message_s,
> LogLevel = ParsedJSON.Log_level_s,
> LogTraceId = ParsedJSON.Log_trace_id_g
>
> ```
>
> Assuming Log_s that contains JSON formatted text like this:
>
```json
> {"Log_message_s": "Example message","Log_level_s": "Information","Log_trace_id_g": "example-trace-id"}
>
> ```
>
> We are working on developing a fix to allow opting into dynamically generated log columns from JSON data through a config option, to be rolled out in the near future.
We're using a similar KQL query to the one suggested above and that seems to work well for now. Hopefully, this helps someone else too.