Add log level API (#444)

* Add log level API

Signed-off-by: jolheiser <john.olheiser@gmail.com>

* Update cli/loglevel/loglevel.go

Co-authored-by: Anbraten <anton@ju60.de>

* Move API to api routes

Signed-off-by: jolheiser <john.olheiser@gmail.com>

Co-authored-by: Anbraten <anton@ju60.de>
This commit is contained in:
John Olheiser
2021-10-18 18:25:20 -05:00
committed by GitHub
parent 03bb0e69d8
commit 8e658c135d
8 changed files with 174 additions and 4 deletions

View File

@@ -15,7 +15,11 @@
package api
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/woodpecker-ci/woodpecker/server/store"
"github.com/woodpecker-ci/woodpecker/version"
@@ -37,3 +41,31 @@ func Version(c *gin.Context) {
"version": version.String(),
})
}
// LogLevel endpoint returns the current logging level
func LogLevel(c *gin.Context) {
c.JSON(200, gin.H{
"log-level": zerolog.GlobalLevel().String(),
})
}
// SetLogLevel endpoint allows setting the logging level via API
func SetLogLevel(c *gin.Context) {
logLevel := struct {
LogLevel string `json:"log-level"`
}{}
if err := c.Bind(&logLevel); err != nil {
c.AbortWithError(http.StatusBadRequest, err)
return
}
lvl, err := zerolog.ParseLevel(logLevel.LogLevel)
if err != nil {
c.AbortWithError(http.StatusBadRequest, err)
return
}
log.Log().Msgf("log level set to %s", lvl.String())
zerolog.SetGlobalLevel(lvl)
c.JSON(200, logLevel)
}