Add log levels (#324)
This commit is contained in:
		
							parent
							
								
									aadf099f50
								
							
						
					
					
						commit
						192d0377c6
					
				|  | @ -60,6 +60,7 @@ Note: | ||||||
| | `WGUI_PERSISTENT_KEEPALIVE` | The default persistent keepalive for WireGuard in global settings                                                                                            | `15`                               | | | `WGUI_PERSISTENT_KEEPALIVE` | The default persistent keepalive for WireGuard in global settings                                                                                            | `15`                               | | ||||||
| | `WGUI_FORWARD_MARK`         | The default WireGuard forward mark                                                                                                                           | `0xca6c`                           | | | `WGUI_FORWARD_MARK`         | The default WireGuard forward mark                                                                                                                           | `0xca6c`                           | | ||||||
| | `WGUI_CONFIG_FILE_PATH`     | The default WireGuard config file path used in global settings                                                                                               | `/etc/wireguard/wg0.conf`          | | | `WGUI_CONFIG_FILE_PATH`     | The default WireGuard config file path used in global settings                                                                                               | `/etc/wireguard/wg0.conf`          | | ||||||
|  | | `WGUI_LOG_LEVEL`            | The default log level. Possible values: `DEBUG`, `INFO`, `WARN`, `ERROR`, `OFF`                                                                              | `INFO`                             |                            | | ||||||
| | `WG_CONF_TEMPLATE`          | The custom `wg.conf` config file template. Please refer to our [default template](https://github.com/ngoduykhanh/wireguard-ui/blob/master/templates/wg.conf) | N/A                                | | | `WG_CONF_TEMPLATE`          | The custom `wg.conf` config file template. Please refer to our [default template](https://github.com/ngoduykhanh/wireguard-ui/blob/master/templates/wg.conf) | N/A                                | | ||||||
| | `EMAIL_FROM_ADDRESS`        | The sender email address                                                                                                                                     | N/A                                | | | `EMAIL_FROM_ADDRESS`        | The sender email address                                                                                                                                     | N/A                                | | ||||||
| | `EMAIL_FROM_NAME`           | The sender name                                                                                                                                              | `WireGuard UI`                     | | | `EMAIL_FROM_NAME`           | The sender name                                                                                                                                              | `WireGuard UI`                     | | ||||||
|  |  | ||||||
|  | @ -112,9 +112,37 @@ func New(tmplBox *rice.Box, extraData map[string]string, secret []byte) *echo.Ec | ||||||
| 	templates["wake_on_lan_hosts.html"] = template.Must(template.New("wake_on_lan_hosts").Funcs(funcs).Parse(tmplBaseString + tmplWakeOnLanHostsString)) | 	templates["wake_on_lan_hosts.html"] = template.Must(template.New("wake_on_lan_hosts").Funcs(funcs).Parse(tmplBaseString + tmplWakeOnLanHostsString)) | ||||||
| 	templates["about.html"] = template.Must(template.New("about").Funcs(funcs).Parse(tmplBaseString + aboutPageString)) | 	templates["about.html"] = template.Must(template.New("about").Funcs(funcs).Parse(tmplBaseString + aboutPageString)) | ||||||
| 
 | 
 | ||||||
| 	e.Logger.SetLevel(log.DEBUG) | 	var lvl log.Lvl | ||||||
|  | 	switch strings.ToLower(util.LookupEnvOrString(util.LogLevel, "INFO")) { | ||||||
|  | 	case "debug": | ||||||
|  | 		lvl = log.DEBUG | ||||||
|  | 	case "info": | ||||||
|  | 		lvl = log.INFO | ||||||
|  | 	case "warn": | ||||||
|  | 		lvl = log.WARN | ||||||
|  | 	case "error": | ||||||
|  | 		lvl = log.ERROR | ||||||
|  | 	case "off": | ||||||
|  | 		lvl = log.OFF | ||||||
|  | 	default: | ||||||
|  | 		log.Fatalf("not a valid log level: %s", util.LookupEnvOrString(util.LogLevel, "INFO")) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	e.Logger.SetLevel(lvl) | ||||||
| 	e.Pre(middleware.RemoveTrailingSlash()) | 	e.Pre(middleware.RemoveTrailingSlash()) | ||||||
| 	e.Use(middleware.Logger()) | 	e.Use(func(next echo.HandlerFunc) echo.HandlerFunc { | ||||||
|  | 		return func(c echo.Context) error { | ||||||
|  | 			resp := c.Response() | ||||||
|  | 			if resp.Status >= 500 && lvl > log.ERROR { // do not log if response is 5XX but log level is higher than ERROR
 | ||||||
|  | 				return next(c) | ||||||
|  | 			} else if resp.Status >= 400 && lvl > log.WARN { // do not log if response is 4XX but log level is higher than WARN
 | ||||||
|  | 				return next(c) | ||||||
|  | 			} else if lvl > log.DEBUG { // do not log if log level is higher than DEBUG
 | ||||||
|  | 				return next(c) | ||||||
|  | 			} | ||||||
|  | 			return middleware.Logger()(next)(c) | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
| 	e.HideBanner = true | 	e.HideBanner = true | ||||||
| 	e.Validator = NewValidator() | 	e.Validator = NewValidator() | ||||||
| 	e.Renderer = &TemplateRegistry{ | 	e.Renderer = &TemplateRegistry{ | ||||||
|  |  | ||||||
|  | @ -41,6 +41,7 @@ const ( | ||||||
| 	PersistentKeepaliveEnvVar              = "WGUI_PERSISTENT_KEEPALIVE" | 	PersistentKeepaliveEnvVar              = "WGUI_PERSISTENT_KEEPALIVE" | ||||||
| 	ForwardMarkEnvVar                      = "WGUI_FORWARD_MARK" | 	ForwardMarkEnvVar                      = "WGUI_FORWARD_MARK" | ||||||
| 	ConfigFilePathEnvVar                   = "WGUI_CONFIG_FILE_PATH" | 	ConfigFilePathEnvVar                   = "WGUI_CONFIG_FILE_PATH" | ||||||
|  | 	LogLevel                               = "WGUI_LOG_LEVEL" | ||||||
| 	ServerAddressesEnvVar                  = "WGUI_SERVER_INTERFACE_ADDRESSES" | 	ServerAddressesEnvVar                  = "WGUI_SERVER_INTERFACE_ADDRESSES" | ||||||
| 	ServerListenPortEnvVar                 = "WGUI_SERVER_LISTEN_PORT" | 	ServerListenPortEnvVar                 = "WGUI_SERVER_LISTEN_PORT" | ||||||
| 	ServerPostUpScriptEnvVar               = "WGUI_SERVER_POST_UP_SCRIPT" | 	ServerPostUpScriptEnvVar               = "WGUI_SERVER_POST_UP_SCRIPT" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue