improv: improve logger extra keys feature #244
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue number: #166
Summary
This PR improves extra keys feature of logger.
Changes
User experience
1. Typed Object Type as Extra Key
For typed class key name will be class name/type name for both generic and non-generic types:
public class LookupInfo
=>LookupInfo
public class LookupInfo<T>
=>LookupInfo
public class LookupInfo<T0,T1,T2,...>
=>LookupInfo
Example:
Output:
2. Anonymous Object Type as Extra Key
For anonymous class key name will be "Extra" for example:
Output:
3. Anonymous Object Type as Extra Key With Specified Key
When specify the key name for extra additional data (acceptable are tuple or key/value pair) for example:
Output:
4. Multiple Key/Value Pairs
When passing multiple key/value pairs (acceptable are Dictionary or list or key/value pair or array of key/value pair ) for example:
Output:
Checklist
Please leave checklist items unchecked if they do not apply to your change.
Is this a breaking change?
RFC issue number:
Checklist:
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.