Skip to content

Commit 00df3a7

Browse files
author
h4sh5
committed
add option to log user agent
1 parent 9862845 commit 00df3a7

File tree

4 files changed

+11
-1
lines changed

4 files changed

+11
-1
lines changed

internal/runner/options.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ type Options struct {
2727
Verbose bool
2828
EnableUpload bool
2929
EnableTCP bool
30+
LogUA bool
3031
RulesFile string
3132
TCPWithTLS bool
3233
Version bool
@@ -53,6 +54,7 @@ func ParseOptions() *Options {
5354
}
5455
flag.StringVar(&options.Folder, "path", currentPath, "Folder")
5556
flag.BoolVar(&options.EnableUpload, "upload", false, "Enable upload via PUT")
57+
flag.BoolVar(&options.LogUA, "log-ua", false, "Log User Agent")
5658
flag.BoolVar(&options.HTTPS, "https", false, "HTTPS")
5759
flag.StringVar(&options.TLSCertificate, "cert", "", "HTTPS Certificate")
5860
flag.StringVar(&options.TLSKey, "key", "", "HTTPS Certificate Key")

internal/runner/runner.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ func New(options *Options) (*Runner, error) {
5555
httpServer, err := httpserver.New(&httpserver.Options{
5656
Folder: r.options.Folder,
5757
EnableUpload: r.options.EnableUpload,
58+
LogUA: r.options.LogUA,
5859
ListenAddress: r.options.ListenAddress,
5960
TLS: r.options.HTTPS,
6061
Certificate: r.options.TLSCertificate,

pkg/httpserver/httpserver.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
type Options struct {
1515
Folder string
1616
EnableUpload bool
17+
LogUA bool // enable logging user agent
1718
ListenAddress string
1819
TLS bool
1920
Certificate string
@@ -46,6 +47,7 @@ func New(options *Options) (*HTTPServer, error) {
4647
var h HTTPServer
4748
EnableUpload = options.EnableUpload
4849
EnableVerbose = options.Verbose
50+
EnableLogUA = options.LogUA
4951
folder, err := filepath.Abs(options.Folder)
5052
if err != nil {
5153
return nil, err

pkg/httpserver/loglayer.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
var (
1313
EnableUpload bool
1414
EnableVerbose bool
15+
EnableLogUA bool
1516
)
1617

1718
func (t *HTTPServer) shouldDumpBody(bodysize int64) bool {
@@ -34,7 +35,11 @@ func (t *HTTPServer) loglayer(handler http.Handler) http.Handler {
3435
lrw.Header().Write(headers) //nolint
3536
gologger.Print().Msgf("\n[%s]\nRemote Address: %s\n%s\n%s %d %s\n%s\n%s\n", time.Now().Format("2006-01-02 15:04:05"), r.RemoteAddr, string(fullRequest), r.Proto, lrw.statusCode, http.StatusText(lrw.statusCode), headers.String(), string(lrw.Data))
3637
} else {
37-
gologger.Print().Msgf("[%s] %s \"%s %s %s\" %d %d", time.Now().Format("2006-01-02 15:04:05"), r.RemoteAddr, r.Method, r.URL, r.Proto, lrw.statusCode, lrw.Size)
38+
if EnableLogUA {
39+
gologger.Print().Msgf("[%s] %s \"%s %s %s\" %d %d - %s", time.Now().Format("2006-01-02 15:04:05"), r.RemoteAddr, r.Method, r.URL, r.Proto, lrw.statusCode, lrw.Size, r.UserAgent())
40+
} else {
41+
gologger.Print().Msgf("[%s] %s \"%s %s %s\" %d %d", time.Now().Format("2006-01-02 15:04:05"), r.RemoteAddr, r.Method, r.URL, r.Proto, lrw.statusCode, lrw.Size)
42+
}
3843
}
3944
})
4045
}

0 commit comments

Comments
 (0)