This works:
[LayoutRenderer("elk-environment-index")]
public class EnvironmentNameLayoutRender : LayoutRenderer
{
[DefaultParameter]
[RequiredParameter]
public Layout AspNetEnvironmentName { get; set; } = "${lowercase:${environment:variable=ASPNETCORE_ENVIRONMENT}}";
protected override void Append(StringBuilder builder, LogEventInfo logEvent)
{
var text = AspNetEnvironmentName!.Render(logEvent);
var name = text switch
{
"development" => "debug",
"staging" => "test",
"production" => "prod",
_ => AspNetEnvironmentName
};
builder.Append(name);
}
}