Add http header logging (#2890)

This commit is contained in:
andig 2022-03-15 10:41:40 +00:00 • committed by GitHub
parent a610ce870c
commit 7a7f787f11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 67 additions and 35 deletions

View file

@ -1,12 +1,15 @@
package cmd
import (
"fmt"
"strconv"
"strings"
"github.com/evcc-io/evcc/api"
"github.com/evcc-io/evcc/cmd/shutdown"
"github.com/evcc-io/evcc/server"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/request"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
@ -22,11 +25,12 @@ const noCurrent = -1
func init() {
rootCmd.AddCommand(chargerCmd)
chargerCmd.PersistentFlags().StringP(flagName, "n", "", "select charger by name")
chargerCmd.PersistentFlags().IntP(flagCurrent, "I", noCurrent, "set current")
chargerCmd.PersistentFlags().BoolP(flagEnable, "e", false, flagEnable)
chargerCmd.PersistentFlags().BoolP(flagDisable, "d", false, flagDisable)
chargerCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeup)
chargerCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "charger"))
chargerCmd.PersistentFlags().IntP(flagCurrent, "I", noCurrent, flagCurrentDescription)
chargerCmd.PersistentFlags().BoolP(flagEnable, "e", false, strings.Title(flagEnable))
chargerCmd.PersistentFlags().BoolP(flagDisable, "d", false, strings.Title(flagDisable))
chargerCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeupDescription)
chargerCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription)
}
func runCharger(cmd *cobra.Command, args []string) {
@ -44,6 +48,11 @@ func runCharger(cmd *cobra.Command, args []string) {
log.FATAL.Fatal(err)
}
// full http request log
if cmd.PersistentFlags().Lookup(flagHeaders).Changed {
request.LogHeaders = true
}
// select single charger
if name := cmd.PersistentFlags().Lookup(flagName).Value.String(); name != "" {
for _, cfg := range conf.Chargers {

View file

@ -1,11 +1,24 @@
package cmd
const (
flagName = "name"
flagCurrent = "current"
flagHeaders = "log-headers"
flagHeadersDescription = "Log headers"
flagName = "name"
flagNameDescription = "Select %s by name"
flagCurrent = "current"
flagCurrentDescription = "Set maximum current"
flagEnable = "enable"
flagDisable = "disable"
flagWakeup = "wakeup"
flagStart = "start"
flagStop = "stop"
flagWakeup = "wakeup"
flagWakeupDescription = "Wake up"
flagStart = "start"
flagStartDescription = "Start charging"
flagStop = "stop"
flagStopDescription = "Stop charging"
)

View file

@ -1,9 +1,12 @@
package cmd
import (
"fmt"
"github.com/evcc-io/evcc/api"
"github.com/evcc-io/evcc/server"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/request"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
@ -17,7 +20,8 @@ var meterCmd = &cobra.Command{
func init() {
rootCmd.AddCommand(meterCmd)
meterCmd.PersistentFlags().StringP("name", "n", "", "select meter by name")
meterCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "meter"))
meterCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription)
}
func runMeter(cmd *cobra.Command, args []string) {
@ -35,6 +39,11 @@ func runMeter(cmd *cobra.Command, args []string) {
log.FATAL.Fatal(err)
}
// full http request log
if cmd.PersistentFlags().Lookup(flagHeaders).Changed {
request.LogHeaders = true
}
// select single meter
if name := cmd.PersistentFlags().Lookup("name").Value.String(); name != "" {
for _, cfg := range conf.Meters {

View file

@ -17,6 +17,7 @@ import (
"github.com/evcc-io/evcc/server/updater"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/pipe"
"github.com/evcc-io/evcc/util/request"
"github.com/evcc-io/evcc/util/sponsor"
"github.com/grandcat/zeroconf"
"github.com/prometheus/client_golang/prometheus/promhttp"
@ -71,33 +72,19 @@ func init() {
cobra.OnInitialize(initConfig)
configureCommand(rootCmd)
rootCmd.PersistentFlags().StringP(
"uri", "u",
"0.0.0.0:7070",
"Listen address",
)
rootCmd.PersistentFlags().StringP("uri", "u", "0.0.0.0:7070", "Listen address")
bind(rootCmd, "uri")
rootCmd.PersistentFlags().DurationP(
"interval", "i",
10*time.Second,
"Update interval",
)
rootCmd.PersistentFlags().DurationP("interval", "i", 10*time.Second, "Update interval")
bind(rootCmd, "interval")
rootCmd.PersistentFlags().Bool(
"metrics",
false,
"Expose metrics",
)
rootCmd.PersistentFlags().Bool("metrics", false, "Expose metrics")
bind(rootCmd, "metrics")
rootCmd.PersistentFlags().Bool(
"profile",
false,
"Expose pprof profiles",
)
rootCmd.PersistentFlags().Bool("profile", false, "Expose pprof profiles")
bind(rootCmd, "profile")
rootCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription)
}
// initConfig reads in config file and ENV variables if set
@ -163,6 +150,11 @@ func run(cmd *cobra.Command, args []string) {
log.FATAL.Fatal(err)
}
// full http request log
if cmd.PersistentFlags().Lookup(flagHeaders).Changed {
request.LogHeaders = true
}
// setup loadpoints
cp.TrackVisitors() // track duplicate usage

View file

@ -1,9 +1,12 @@
package cmd
import (
"fmt"
"github.com/evcc-io/evcc/api"
"github.com/evcc-io/evcc/server"
"github.com/evcc-io/evcc/util"
"github.com/evcc-io/evcc/util/request"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
@ -17,10 +20,11 @@ var vehicleCmd = &cobra.Command{
func init() {
rootCmd.AddCommand(vehicleCmd)
vehicleCmd.PersistentFlags().StringP(flagName, "n", "", "select vehicle by name")
vehicleCmd.PersistentFlags().BoolP(flagStart, "a", false, "start charge")
vehicleCmd.PersistentFlags().BoolP(flagStop, "o", false, "stop charge")
vehicleCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeup)
vehicleCmd.PersistentFlags().StringP(flagName, "n", "", fmt.Sprintf(flagNameDescription, "vehicle"))
vehicleCmd.PersistentFlags().BoolP(flagStart, "a", false, flagStartDescription)
vehicleCmd.PersistentFlags().BoolP(flagStop, "o", false, flagStopDescription)
vehicleCmd.PersistentFlags().BoolP(flagWakeup, "w", false, flagWakeupDescription)
vehicleCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription)
}
func runVehicle(cmd *cobra.Command, args []string) {
@ -38,6 +42,11 @@ func runVehicle(cmd *cobra.Command, args []string) {
log.FATAL.Fatal(err)
}
// full http request log
if cmd.PersistentFlags().Lookup(flagHeaders).Changed {
request.LogHeaders = true
}
// select single charger
if name := cmd.PersistentFlags().Lookup(flagName).Value.String(); name != "" {
for _, cfg := range conf.Vehicles {