You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to render a currency value in my log output. For the sake of discussion:
decimal currentBalance = 12345.67M;
Log.Logger.Information("Your balance is {CurrentBalance:C}", currentBalance);
As best I can tell Seq uses the invariant culture which renders currencies like ¤12,345.67 (or (¤12,345.67) for negative). I sympathise with the choice of invariant culture as a good default but its currency format is not very native to me.
Serilog's documentation suggests the onus is on sinks to support format providers, and I can't see any way to give Seq a CustomDecimalFormatter or similar.
For now I am using {CurrentBalance:$#,0.00} as a workaround, I'd prefer to use C and get a en-AU/en-US style currency.
If I've overlooked how to specify a format provider for this sink please let me know, otherwise I submit "Specify Format Provider" as a feature request for your consideration.
The text was updated successfully, but these errors were encountered:
But unfortunately, it doesn't supply the third IFormatProvider parameter to PropertyToken.Render().
Right now the quickest option will probably be for us to take over the formatting responsibility here in the Seq sink, and accept an IFormatProvider through WriteTo.Seq(), but I suspect longer-term we'll need to consider some changes in Serilog.Formatting.Compact to accommodate this.
nblumhardt
changed the title
Specify Format Provider
Accept an IFormatProviderJan 13, 2022
I'd like to render a currency value in my log output. For the sake of discussion:
As best I can tell Seq uses the invariant culture which renders currencies like
¤12,345.67
(or(¤12,345.67)
for negative). I sympathise with the choice of invariant culture as a good default but its currency format is not very native to me.Serilog's documentation suggests the onus is on sinks to support format providers, and I can't see any way to give Seq a
CustomDecimalFormatter
or similar.For now I am using
{CurrentBalance:$#,0.00}
as a workaround, I'd prefer to useC
and get a en-AU/en-US style currency.If I've overlooked how to specify a format provider for this sink please let me know, otherwise I submit "Specify Format Provider" as a feature request for your consideration.
The text was updated successfully, but these errors were encountered: