Support FromStandardSLogger to wrap a slog.Logger into a hclog.Logger#142
Open
magodo wants to merge 1 commit intohashicorp:mainfrom
Open
Support FromStandardSLogger to wrap a slog.Logger into a hclog.Logger#142magodo wants to merge 1 commit intohashicorp:mainfrom
FromStandardSLogger to wrap a slog.Logger into a hclog.Logger#142magodo wants to merge 1 commit intohashicorp:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
slog.Logger, similar tolog.Logger, is a Go 1st class logger type in the standard library. Theslog.Loggeris also used as an important interface for the OpenTelemetry logging package for Go. The current module has support forlog.Logger, so it would be intuitive to have theslog.Loggersupported as well.This PR introduces a new function
FromStandardSLoggerfor wrapping aslog.Loggerinto ahclog.Logger, similar to theFromStandardLogger. The difference is the interface is a bit different, in that aLoggerOptionsis not needed, as those tunnable part are dominated by theslog.Loggeritself. Meanwhile, it has an optional parameterlvar, which is aslog.LevelVar. When this is notnil, it is used for supporting theSetLevelmethod of the returnedhclog.Logger(as there is no way to retrieve theslog.LevelVarfrom aslog.Logger.There are also two additional consts introduced:
SlogLevelTrace: For supporting thehclog.TracelevelSlogLevelOff: For supporting thehclog.OfflevelThe args related feature is implemented natively by the slog attributes.
The name related feature is implemented natively by the slog groups.