Skip to content

Commit

Permalink
Add option to toggle date/time in log messages
Browse files Browse the repository at this point in the history
  • Loading branch information
fguillot committed Jun 9, 2019
1 parent f7b7b63 commit 91508c5
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 1 deletion.
4 changes: 4 additions & 0 deletions cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ func Parse() {
return
}

if config.Opts.LogDateTime() {
logger.EnableDateTime()
}

if flagDebugMode || config.Opts.HasDebugMode() {
logger.EnableDebug()
}
Expand Down
9 changes: 9 additions & 0 deletions config/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (

const (
defaultHTTPS = false
defaultLogDateTime = false
defaultHSTS = true
defaultHTTPService = true
defaultSchedulerService = true
Expand Down Expand Up @@ -47,6 +48,7 @@ const (
// Options contains configuration options.
type Options struct {
HTTPS bool
logDateTime bool
hsts bool
httpService bool
schedulerService bool
Expand Down Expand Up @@ -84,6 +86,7 @@ type Options struct {
func NewOptions() *Options {
return &Options{
HTTPS: defaultHTTPS,
logDateTime: defaultLogDateTime,
hsts: defaultHSTS,
httpService: defaultHTTPService,
schedulerService: defaultSchedulerService,
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand Down
2 changes: 2 additions & 0 deletions config/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -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":
Expand Down
16 changes: 15 additions & 1 deletion logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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...)
}
19 changes: 19 additions & 0 deletions miniflux.1
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 91508c5

Please sign in to comment.