Skip to content
Snippets Groups Projects
Commit 6e7dfa0d authored by Niall Sheridan's avatar Niall Sheridan
Browse files

Configurable logfile location

parent e9d53ad6
Branches
Tags
No related merge requests found
......@@ -81,6 +81,7 @@ Configuration is divided into different sections: `server`, `auth`, `ssh`, and `
- `tls_cert` : string. Path to the TLS cert.
- `port` : int. Port to listen on.
- `cookie_secret`: string. Authentication key for the session cookie.
- `http_logfile`: string. Path to the HTTP request log. Logs are written in the [Common Log Format](https://en.wikipedia.org/wiki/Common_Log_Format). If not set logs are written to stderr.
### auth
- `provider` : string. Name of the oauth provider. At present the only valid value is "google".
......
......@@ -256,7 +256,14 @@ func main() {
r.Handle("/auth/login", appHandler{ctx, loginHandler})
r.Handle("/auth/callback", appHandler{ctx, callbackHandler})
r.Handle("/sign", appHandler{ctx, signHandler})
h := handlers.LoggingHandler(os.Stdout, r)
logfile := os.Stderr
if config.Server.HTTPLogFile != "" {
logfile, err = os.OpenFile(config.Server.HTTPLogFile, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0660)
if err != nil {
log.Fatal(err)
}
}
h := handlers.LoggingHandler(logfile, r)
fmt.Println("Starting server...")
l := fmt.Sprintf(":%d", config.Server.Port)
......
......@@ -5,6 +5,7 @@ server {
tls_cert = "server.crt" # Path to TLS certificate
port = 443 # Port to listen on
cookie_secret = "supersecret" # Authentication key for the client cookie
http_logfile = "http.log" # Logfile for HTTP requests
}
# Oauth2 configuration
......
......@@ -10,10 +10,10 @@ import (
// Config holds the server configuration.
type Config struct {
Server `mapstructure:"server"`
Auth `mapstructure:"auth"`
SSH `mapstructure:"ssh"`
AWS `mapstructure:"aws"`
Server Server `mapstructure:"server"`
Auth Auth `mapstructure:"auth"`
SSH SSH `mapstructure:"ssh"`
AWS AWS `mapstructure:"aws"`
}
// unmarshalled holds the raw config.
......@@ -31,6 +31,7 @@ type Server struct {
TLSCert string `mapstructure:"tls_cert"`
Port int `mapstructure:"port"`
CookieSecret string `mapstructure:"cookie_secret"`
HTTPLogFile string `mapstructure:"http_logfile"`
}
// Auth holds the configuration specific to the OAuth provider.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment