Open mishamyte opened 2 years ago
The problem is TextFormatter
gets LogEvent
without properties, that will be mapped to labels. This behavior exists because we don't want to create duplicates (properties, which would be both labels and body rendering).
So the way should be found how pass it to formatter and use for message rendering, but not render as a part of the body
Seems like it is not possible to do with current abstractions, should be a point of review and breaking changes
Honestly for our use case leaving the labels as properties (and thus having a "duplicate") would be an acceptable solution. At least one we could opt in too. Basically leave them in the property list and just extract them towards labels, it's how it used to work for v7 and earlier it seems.
Say an option that opts out of this partitioning: https://github.com/serilog-contrib/serilog-sinks-grafana-loki/blob/master/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs#L185
Honestly for our use case leaving the labels as properties (and thus having a "duplicate") would be an acceptable solution. At least one we could opt in too. Basically leave them in the property list and just extract them towards labels, it's how it used to work for v7 and earlier it seems.
Say an option that opts out of this partitioning: https://github.com/serilog-contrib/serilog-sinks-grafana-loki/blob/master/src/Serilog.Sinks.Grafana.Loki/LokiBatchFormatter.cs#L185
Yep, this is the problem. To formatter we pass the properties, were not mapped to labels. So while formatter tries to render a Message
(for example), rendering input doesn't consist of all needed tokens for rendering.
This is a reason why it is not possible without breaking contracts or scary workarounds fix it in v8.
But this is the point of fix for v9
I'll whip up a quick fork for our internal use that could be released in the v8 line of versions if you want. It's a bit of a workaround (the opt-out) but it also doesn't break anything.
Yep, see your solution. Seems nice as a workaround for now. Let me think
Cool, if you need me to rename the parameter or anything like that let me know.
Thanks for your work, @EraYaN!
I think we should add it to the current versions as a workaround for the situation. Will prepare the release
Discussed in https://github.com/serilog-contrib/serilog-sinks-grafana-loki/discussions/137
Which version of Serilog.Sinks.Grafana.Loki are you using?
v8.0.0