mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Desktop integration (#2073)
* Open stash in system tray on Windows/MacOS * Add desktop notifications * MacOS Bundling * Add binary icon Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
e48b2ba3e8
commit
0e514183a7
86
vendor/github.com/go-chi/httplog/config.go
generated
vendored
Normal file
86
vendor/github.com/go-chi/httplog/config.go
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
package httplog
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
var DefaultOptions = Options{
|
||||
LogLevel: "info",
|
||||
LevelFieldName: "level",
|
||||
JSON: false,
|
||||
Concise: false,
|
||||
Tags: nil,
|
||||
SkipHeaders: nil,
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
// LogLevel defines the minimum level of severity that app should log.
|
||||
//
|
||||
// Must be one of: ["trace", "debug", "info", "warn", "error", "critical"]
|
||||
LogLevel string
|
||||
|
||||
// LevelFieldName sets the field name for the log level or severity.
|
||||
// Some providers parse and search for different field names.
|
||||
LevelFieldName string
|
||||
|
||||
// JSON enables structured logging output in json. Make sure to enable this
|
||||
// in production mode so log aggregators can receive data in parsable format.
|
||||
//
|
||||
// In local development mode, its appropriate to set this value to false to
|
||||
// receive pretty output and stacktraces to stdout.
|
||||
JSON bool
|
||||
|
||||
// Concise mode includes fewer log details during the request flow. For example
|
||||
// exluding details like request content length, user-agent and other details.
|
||||
// This is useful if during development your console is too noisy.
|
||||
Concise bool
|
||||
|
||||
// Tags are additional fields included at the root level of all logs.
|
||||
// These can be useful for example the commit hash of a build, or an environment
|
||||
// name like prod/stg/dev
|
||||
Tags map[string]string
|
||||
|
||||
// SkipHeaders are additional headers which are redacted from the logs
|
||||
SkipHeaders []string
|
||||
}
|
||||
|
||||
// Configure will set new global/default options for the httplog and behaviour
|
||||
// of underlying zerolog pkg and its global logger.
|
||||
func Configure(opts Options) {
|
||||
if opts.LogLevel == "" {
|
||||
opts.LogLevel = "info"
|
||||
}
|
||||
|
||||
if opts.LevelFieldName == "" {
|
||||
opts.LevelFieldName = "level"
|
||||
}
|
||||
|
||||
// Pre-downcase all SkipHeaders
|
||||
for i, header := range opts.SkipHeaders {
|
||||
opts.SkipHeaders[i] = strings.ToLower(header)
|
||||
}
|
||||
|
||||
DefaultOptions = opts
|
||||
|
||||
// Config the zerolog global logger
|
||||
logLevel, err := zerolog.ParseLevel(strings.ToLower(opts.LogLevel))
|
||||
if err != nil {
|
||||
fmt.Printf("httplog: error! %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
zerolog.SetGlobalLevel(logLevel)
|
||||
|
||||
zerolog.LevelFieldName = strings.ToLower(opts.LevelFieldName)
|
||||
zerolog.TimestampFieldName = "timestamp"
|
||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
||||
|
||||
if !opts.JSON {
|
||||
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user