Porting SerilogLogger from KExpense

`provider` probably needs to be marked with `[NotNull]`