mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-11-08 01:55:43 +00:00
feat: add log in json option
This commit is contained in:
@@ -200,3 +200,23 @@ func GetOAuthProvidersConfig(env []string, args []string, appUrl string) (map[st
|
|||||||
// Return combined providers
|
// Return combined providers
|
||||||
return providers, nil
|
return providers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ShoudLogJSON(environ []string, args []string) bool {
|
||||||
|
for _, e := range environ {
|
||||||
|
pair := strings.SplitN(e, "=", 2)
|
||||||
|
if len(pair) == 2 && pair[0] == "LOG_JSON" && strings.ToLower(pair[1]) == "true" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, arg := range args[1:] {
|
||||||
|
if strings.HasPrefix(arg, "--log-json=") {
|
||||||
|
value := strings.SplitN(arg, "=", 2)[1]
|
||||||
|
if strings.ToLower(value) == "true" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|||||||
@@ -278,3 +278,21 @@ func TestGetOAuthProvidersConfig(t *testing.T) {
|
|||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.DeepEqual(t, expected, result)
|
assert.DeepEqual(t, expected, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestShoudLogJSON(t *testing.T) {
|
||||||
|
// Test with no env or args
|
||||||
|
result := utils.ShoudLogJSON([]string{"FOO=bar"}, []string{"tinyauth", "--foo-bar=baz"})
|
||||||
|
assert.Equal(t, false, result)
|
||||||
|
|
||||||
|
// Test with env variable set
|
||||||
|
result = utils.ShoudLogJSON([]string{"LOG_JSON=true"}, []string{"tinyauth", "--foo-bar=baz"})
|
||||||
|
assert.Equal(t, true, result)
|
||||||
|
|
||||||
|
// Test with flag set
|
||||||
|
result = utils.ShoudLogJSON([]string{"FOO=bar"}, []string{"tinyauth", "--log-json=true"})
|
||||||
|
assert.Equal(t, true, result)
|
||||||
|
|
||||||
|
// Test with both env and flag set to false
|
||||||
|
result = utils.ShoudLogJSON([]string{"LOG_JSON=false"}, []string{"tinyauth", "--log-json=false"})
|
||||||
|
assert.Equal(t, false, result)
|
||||||
|
}
|
||||||
|
|||||||
6
main.go
6
main.go
@@ -4,12 +4,16 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
"tinyauth/cmd"
|
"tinyauth/cmd"
|
||||||
|
"tinyauth/internal/utils"
|
||||||
|
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}).With().Timestamp().Caller().Logger()
|
log.Logger = log.Logger.With().Timestamp().Caller().Logger()
|
||||||
|
if !utils.ShoudLogJSON(os.Environ(), os.Args) {
|
||||||
|
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339})
|
||||||
|
}
|
||||||
cmd.Run()
|
cmd.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user