mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2026-03-16 17:54:07 +01:00
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:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user