Add option to toggle date/time in log messages

pull/390/head
Frédéric Guillot 5 years ago committed by fguillot
parent f7b7b63e3f
commit 91508c50b5
  1. 4
      cli/cli.go
  2. 9
      config/options.go
  3. 2
      config/parser.go
  4. 16
      logger/logger.go
  5. 19
      miniflux.1

@ -78,6 +78,10 @@ func Parse() {
return
}
if config.Opts.LogDateTime() {
logger.EnableDateTime()
}
if flagDebugMode || config.Opts.HasDebugMode() {
logger.EnableDebug()
}

@ -11,6 +11,7 @@ import (
const (
defaultHTTPS = false
defaultLogDateTime = false
defaultHSTS = true
defaultHTTPService = true
defaultSchedulerService = true
@ -47,6 +48,7 @@ const (
// Options contains configuration options.
type Options struct {
HTTPS bool
logDateTime bool
hsts bool
httpService bool
schedulerService bool
@ -84,6 +86,7 @@ type Options struct {
func NewOptions() *Options {
return &Options{
HTTPS: defaultHTTPS,
logDateTime: defaultLogDateTime,
hsts: defaultHSTS,
httpService: defaultHTTPService,
schedulerService: defaultSchedulerService,
@ -118,6 +121,11 @@ func NewOptions() *Options {
}
}
// LogDateTime returns true if the date/time should be displayed in log messages.
func (o *Options) LogDateTime() bool {
return o.logDateTime
}
// HasDebugMode returns true if debug mode is enabled.
func (o *Options) HasDebugMode() bool {
return o.debug
@ -283,6 +291,7 @@ func (o *Options) HTTPClientMaxBodySize() int64 {
func (o *Options) String() string {
var builder strings.Builder
builder.WriteString(fmt.Sprintf("LOG_DATE_TIME: %v\n", o.logDateTime))
builder.WriteString(fmt.Sprintf("DEBUG: %v\n", o.debug))
builder.WriteString(fmt.Sprintf("HTTP_SERVICE: %v\n", o.httpService))
builder.WriteString(fmt.Sprintf("SCHEDULER_SERVICE: %v\n", o.schedulerService))

@ -71,6 +71,8 @@ func (p *Parser) parseLines(lines []string) (err error) {
value := strings.TrimSpace(fields[1])
switch key {
case "LOG_DATE_TIME":
p.opts.logDateTime = parseBool(value, defaultLogDateTime)
case "DEBUG":
p.opts.debug = parseBool(value, defaultDebug)
case "BASE_URL":

@ -7,9 +7,11 @@ package logger // import "miniflux.app/logger"
import (
"fmt"
"os"
"time"
)
var requestedLevel = InfoLevel
var displayDateTime = false
// LogLevel type.
type LogLevel uint32
@ -43,6 +45,11 @@ func (level LogLevel) String() string {
}
}
// EnableDateTime enables date time in log messages.
func EnableDateTime() {
displayDateTime = true
}
// EnableDebug increases logging, more verbose (debug)
func EnableDebug() {
requestedLevel = DebugLevel
@ -79,6 +86,13 @@ func Fatal(format string, v ...interface{}) {
}
func formatMessage(level LogLevel, format string, v ...interface{}) {
prefix := fmt.Sprintf("[%s] ", level.String())
var prefix string
if displayDateTime {
prefix = fmt.Sprintf("[%s] [%s] ", time.Now().Format("2006-01-02T15:04:05"), level)
} else {
prefix = fmt.Sprintf("[%s] ", level)
}
fmt.Fprintf(os.Stderr, prefix+format+"\n", v...)
}

@ -78,11 +78,30 @@ Show application version\&.
Show application version\&.
.RE
.SH CONFIGURATION FILE
The configuration file is a text file that follow these rules:
.LP
- Miniflux expects each line to be in KEY=VALUE format.
.br
- Lines beginning with # are processed as comments and ignored.
.br
- Blank lines are ignored.
.br
- There is no variable interpolation.
.PP
Keys are the same as the environment variables described below.
.br
Environment variables override the values defined in the config file.
.SH ENVIRONMENT
.TP
.B DEBUG
Set the value to 1 to enable debug logs\&.
.TP
.TP
.B LOG_DATE_TIME
Display the date and time in log messages\&.
.TP
.B WORKER_POOL_SIZE
Number of background workers (default is 5)\&.
.TP

Loading…
Cancel
Save